2020-12-23 laravel 學(xué)習(xí)①

.env文件配置

APP_NAME=Laravel  # 項(xiàng)目名稱
APP_DEBUG=true  # 調(diào)試模式開(kāi)啟狀態(tài)

DB_CONNECTION=mysql   # 連接數(shù)據(jù)庫(kù)的類型
DB_HOST=127.0.0.1     # 數(shù)據(jù)庫(kù)連接host
DB_PORT=3306         # 數(shù)據(jù)庫(kù)連接端口
DB_DATABASE=blog      # 數(shù)據(jù)庫(kù)連接端口
DB_USERNAME=homestead # 數(shù)據(jù)庫(kù)用戶名
DB_PASSWORD=secret    # 數(shù)據(jù)庫(kù)密碼

路由

所有的路由需要寫在./route/web.php文件內(nèi)

// 控制器路由
Route::get('user', 'UserController@show');
// get   指通過(guò)get方式請(qǐng)求
// user   指路由地址為/user
// UserController 指以 App\Http\Controllers 為根的命名空間
// show 指執(zhí)行的方法名

Route::match(['get', 'post'], 'user', 'UserController@show');
// 還可以用match方法添加多個(gè)請(qǐng)求方式
Route::all('user', 'UserController@show');
// all方法為所有請(qǐng)求都可以直接訪問(wèn)

Route::get('/user/{id}', 'UserController@show');
// 在路由中添加{}即可添加一個(gè)動(dòng)態(tài)的參數(shù)
Route::get('/user/{id?}', 'UserController@show');
// 在路由中添加{}中加上一個(gè)?, 且show的形參中有定義默認(rèn)值
// 則url不攜帶參數(shù)也可以進(jìn)行正常訪問(wèn)

Route::get('/user/{id?}', 'UserController@show')->where('id', '[0-9]+');
// 調(diào)用where方法則為進(jìn)行篩選
// 參數(shù)描述 第一位為參數(shù)名, 第二位為正則表達(dá)式

Route::resource('/users', 'UserController');
// 添加資源類型的控制器中自動(dòng)生成的方法的路由

模型

模型命名一般用表名相對(duì)應(yīng)名字

# 創(chuàng)建模型
$ php artisan make:model Models\Member
創(chuàng)建成功

創(chuàng)建后的初始代碼

控制器

# 創(chuàng)建控制器
$ php artisan make:controller MemberController

# 創(chuàng)建資源類型的控制器
$ php artisan make:controller BookController --resource
創(chuàng)建成功

創(chuàng)建后的初始代碼

創(chuàng)建資源類型的控制器后會(huì)出現(xiàn)對(duì)資源的通用操作方法

資源類型的控制器的初始代碼

數(shù)據(jù)庫(kù)遷移

文件目錄在./database/migrations

# 使用遷移工具創(chuàng)建遷移文件
$ php artisan make:migration create_member_table
創(chuàng)建遷移文件
創(chuàng)建的初始代碼

其中 up方法為創(chuàng)建數(shù)據(jù)表方法, down方法為刪除數(shù)據(jù)表方法

        Schema::create('member', function (Blueprint $table) {
            $table->integerIncrements('id');
            // 創(chuàng)建自增長(zhǎng)的字段, 名為id
            $table->string('nickname', 32)->nullable('false');
            // 創(chuàng)建一個(gè)名為nickname的字段, 字段不為空, 并且設(shè)置字段長(zhǎng)度為32
            $table->string('truename', 32)->nullable('false');
            $table->string('email', 50)->nullable('false');
        });



執(zhí)行遷移文件

# 第一次執(zhí)行遷移文件時(shí)候執(zhí)行
$ php artisan migrate:install

# 假如已經(jīng)遷移完成了, 但是又因?yàn)樾枨笮枰獎(jiǎng)?chuàng)建新的表則執(zhí)行以下命令
$ php artisan migrate
執(zhí)行成功

還有其他操作方法可參考 官方中文文檔(數(shù)據(jù)庫(kù)遷移篇)

數(shù)據(jù)庫(kù)數(shù)據(jù)填充

文件目錄為./database/seeds

php artisan make:seeder MamberTableSeeder
創(chuàng)建成功
    public function run()
    {
        //定義數(shù)據(jù)
        $data = [
            [
                'id' => 1,
                'nikename' => '小霸王',
                'truename' => '張震',
                'email' => 'zhangzhen@gmail.com',
            ],
            [
                'id' => 2,
                'nikename' => '學(xué)習(xí)機(jī)',
                'truename' => '張震岳',
                'email' => 'zhangzhenyue@gmail.com',
            ],
        ];

        // 插入數(shù)據(jù)
        DB::table('member')->insert($data);
    }
# 執(zhí)行填充器
$ php artisan db:seed --class=MemberTableSeeder
填充成功

數(shù)據(jù)庫(kù)中顯示數(shù)據(jù)

視圖

調(diào)用方法

// 方法1
        return view('member.index', [
            'truename' => '張三',
            'nickname' => '張小三',
        ]);

//方法2
        $member = [
            'truename' => '張三',
            'nickname' => '張小三',
        ];
        return view('member.index', compact(
            'member'
        ));

視圖文件

# 獲取變量的方式
方法1
{{ $truename }}
{{ $nickname }}
方法2
{{ $member['truename']}}
{{ $member['nickname']}}

#不轉(zhuǎn)義輸出
{!! $nickname !!}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容