搜尋
首頁頭條Laravel教程之基礎入門與如何操作資料庫

Laravel教程之基礎入門與如何操作資料庫

Jul 10, 2017 am 11:51 AM
laravel入門如何

Laravel身為最優雅的PHP框架,許多學習PHP的小夥伴早就對Laravel垂涎欲滴。就讓我們一起從零開始,教你如何安裝和使用它的基礎功能,以及資料庫的操作。今天我們php中文網就帶來學習和實作一下。

可以學習php中文網提供的影片教學:

#1. 輕鬆學會Laravel-基礎篇

相關連結:http://www.php.cn/course/282.html

2. 輕鬆學會Laravel-高級篇影片教學

相關連結:http://www.php.cn/course /402.html

#下面就開始Laravel框架的學習與使用吧!

安裝

Laravel框架使用 Composer 執行安裝和依賴管理。如果還沒安裝的話,現在就開始 安裝 Composer 吧。

安裝Composer之後,你就可以透過命令列使用以下指令安裝Laravel了:

composer create-project laravel/laravel your-project-name
或者,你可以從Github倉庫下載。接下來,在 安裝Composer 之後,在專案根目錄下執行 composer install 指令。該命令將會下載以及安裝框架的依賴元件。

寫入權限

目錄結構

#安裝完框架後,你需要熟悉一下該項目的目錄結構。 app 資料夾包含了一些例如 views ,controllers 和 models 目錄。 程式中大部分程式碼將要存放這些目錄下。你也可以查看一下 app/config 資料夾裡一些設定項目。

路由

我們開始建立我們第一個路由。在 Laravel,簡單路由的方法是閉包。打開 app/routes.php 檔案加入以下程式碼:

Route::get('users', function()
{
    return 'Users!';
});

現在,你在 web 瀏覽器輸入 /users,你應該會看到 Users! 輸出。真棒!已經創建了你第一個路由。

路由也可以賦予控制器類別。例如:

建立視圖

接下來,我們要建立視圖來顯示我們使用者資料。視圖以HTML程式碼存放在 app/views 資料夾。我們將存放兩個視圖檔案到該資料夾:layout.blade.php 和 users.blade.php。首先,讓我們先建立 layout.blade.php 檔案:

<html>
    <body>
        <h1 id="Laravel-nbsp-Quickstart">Laravel Quickstart</h1>
                @yield(&#39;content&#39;)
    </body>
</html>

接著, 我們建立 users.blade.php 視圖:

@extends(&#39;layout&#39;)
@section(&#39;content&#39;)    
Users!
@stop

這裡的語法可能會讓你感到陌生。因為我們使用的是 Laravel 模板系統:Blade。 Blade 非常快,因為只使用了少量的正規表示式來為你的模板編譯成原始PHP程式碼。 Blade提供強大的功能,例如模板繼承,還有一些常用的PHP控制結構語法糖,例如 if 和 for。 查看 Blade 文件 了解更多。

現在我們有了我們視圖,讓我們回傳 /users 路由。我們用視圖來替代回傳 Users!:

Route::get(&#39;users&#39;, function()
{
    return View::make(&#39;users&#39;);
});

漂亮!現在你成功建立了繼承至layout的視圖。接下來,讓我們開始資料庫層。

建立遷移

要建立表格來保存我們數據,我們將使用 Laravel 遷移系統。遷移描述資料庫的改變,這讓分享給他們團隊成員非常簡單。

首先,我們設定資料庫連線。你可以在 app/config/database.php 檔案設定所有資料庫連線資訊。默認,Laravel 被配置為使用 SQLite,並且一個 SQLite 資料庫存放在 app/database 目錄。你可以將資料庫設定檔的 driver 選項修改為 mysql 並且配置 mysql 連線資訊。

接下來,要建立遷移,我們將使用 Artisan CLI。在專案根目錄中,在終端機中執行以下命令:

php artisan migrate:make create_users_table

然後,找到產生的遷移檔案 app/database/migrations 目錄。該檔案包含了一個包含兩個方法: up 和 down 的類別。在 up 方法,你要指涉資料庫表的修改,在 down 方法中你只需要移除它。

讓我們定義如下遷移:

public function up()
{
    Schema::create(&#39;users&#39;, function($table)
    {
        $table->increments(&#39;id&#39;);
        $table->string(&#39;email&#39;)->unique();
        $table->string(&#39;name&#39;);
        $table->timestamps();
    });
}
public function down()
{
    Schema::drop(&#39;users&#39;);
}

然後,我們在專案根目錄中使用終端機執行migrate 指令來執行遷移:

php artisan migrate

如果你想回滾遷移,你可以執行migrate:rollback 指令。現在我們已經有了資料庫表,讓我們讓添加一些資料!

Eloquent ORM

Laravel 提供非常棒的 ORM:Eloquent。如果你使用过 Ruby on Rails 框架,你会发现 Eloquent 很相似,因为它遵循数据库交互的 ActiveRecord ORM 风格。

首先,让我们来定义个模型。ELoquent 模型可以用来查询相关数据表,以及表内的某一行。别着急,我们很快会谈及!模型通常存放在 app/models 目录。让我们在该目录定义个 User.php 模型,如:

class User extends Eloquent {}

注意我们并没有告诉 Eloquent 使用哪个表。Eloquent 有多种约定, 一个是使用模型的复数形式作为模型的数据库表。非常方便!

使用你喜欢的数据库管理工具,插入几行数据到 users 表,我们将使用 Eloquent 取得它们并传递到视图中。

现在我们修改我们 /users 路由如下:

Route::get(&#39;users&#39;, function()
{
    $users = User::all();
    return View::make(&#39;users&#39;)->with(&#39;users&#39;, $users);
});

让我们来看看该路由。首先,User 模型的 all 方法将会从 users 表中取得所有记录。接下来,我们通过 with 方法将这些记录传递到视图。with 方法接受一个键和一个值,那么该值就可以在视图中使用了。

激动啊。现在我们准备将用户显示在我们视图!

显示数据

现在我们视图中已经可以访问 users 类,我们可以如下显示它们:


@extends(&#39;layout&#39;)
@section(&#39;content&#39;)
    @foreach($users as $user)
        <p>{{ $user->name }}</p>
    @endforeach
@stop

你可以发现没有找到 echo 语句。当使用 Blade 时,你可以使用两个花括号来输出数据。非常简单,你现在应该可以通过 /users 路由来查看到用户姓名作为响应输出。

下面来介绍一下如何操作数据库:

一、读/写连接

有时您可能希望使用一个SELECT语句的数据库连接,,另一个用于插入、更新和删除语句。Laravel使这微风,将始终使用正确的连接是否使用原始查询,查询生成器或雄辩的ORM。

二、运行查询

一旦你已经配置了数据库连接,你可以使用DB运行查询类。

运行一个Select查询

$results = DB::select(&#39;select * from users where id = ?&#39;, array(1));

结果的选择方法总是返回一个数组。

运行一个Insert语句

DB::insert(&#39;insert into users (id, name) values (?, ?)&#39;, array(1, &#39;Dayle&#39;));

运行一个更新语句

DB::update(&#39;update users set votes = 100 where name = ?&#39;, array(&#39;John&#39;));

运行一个Delete语句

DB::delete(&#39;delete from users&#39;);

注意:update和delete语句返回的行数的影响操作。

运行一个通用声明

DB::statement(&#39;drop table users&#39;);

查询事件监听

你可以查询事件监听使用DB::听方法:

DB::listen(function($sql, $bindings, $time){ //});

三、数据库事务

  运行在一个数据库事务的一组操作,您可以使用事务方法:

 DB::transaction(function(){ DB::table(&#39;users&#39;)->update(array(&#39;votes&#39; => 1)); DB::table(&#39;posts&#39;)->delete();});

注意:在事务抛出的任何异常关闭将导致自动事务将回滚

有时你可能需要开始一个事务:

DB::beginTransaction();

你可以通过回滚事务回滚方法:

DB::rollback();

最后,您可以通过提交方法:提交一个事务

DB::commit();

四、访问连接

当使用多个连接,你可以访问它们通过DB::连接方法:

$users = DB::connection(&#39;foo&#39;)->select(...);

你也可以访问原始的、潜在的PDO实例:

$pdo = DB::connection()->getPdo();

有时你可能需要重新连接到一个给定的数据库:

DB::reconnect(&#39;foo&#39;);

如果你需要断开从给定的数据库将超过底层PDO实例'smax_connections限制,使用断开连接方法:

DB::disconnect(&#39;foo&#39;);

五、查询日志

默认情况下,Laravel日志保存在内存的所有查询运行当前的请求。然而,在某些情况下,例如当插入的行数,这可能会导致应用程序使用多余的内存。禁用日志,你可以使用disableQueryLog方法:

DB::connection()->disableQueryLog();

o得到一组执行的查询,您可以使用getQueryLog方法:

$queries = DB::getQueryLog();


相关推荐:

1. 云服务器上部署Laravel的实例教程

2. Laravel学习-数据库操作和查询构造器的示例代码分享

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境