6.27-7.4的任務:
1.閱讀Laravel中文文檔,建立項目進行嘗試
2.加深對于sql的了解
3.看代碼儡遮,樂器博物館和新聞
記錄-Laravel中文文檔學習:
——Route的范式:Route::get($uri, $callback); ? ? uri是路由的輸入,callback是返回值宿稀,callback的位置是一個閉包糜值,目前理解為一個函數(shù)?篡石??
——設(shè)定可選參數(shù)笛洛,需要設(shè)定默認值夏志,否則閉包中可能缺少參數(shù)
Route::get('user/{name?}', function ($name = null) {
return $name;
});
——正則約束,基本夠用的格式:‘a(chǎn)bc’ 寫死的字符,‘[0-9][a-z][K-X]’ 一個范圍內(nèi)的字符沟蔑,‘湿诊?’ 0或1個,‘+’ 1或多個瘦材, ‘{1厅须,10}’ 控制字符串長度
Route::get('member/{id}/{name}',function($id,$name) {
return'hello '.$id.' '.$name;
})->where(['id'=>'u[0-9]{1,5}','name'=>'[0-z]+']);
——全局約束有什么作用?食棕?
——群組路由&命名路由朗和,該例中群組路由的名稱為‘group’,其附屬的路由名稱為‘group::name’簿晓,所以調(diào)用route方法生成Level2的url時眶拉,參數(shù)名稱為‘group;;Level2’,但是在訪問url時憔儿,地址輸入為http://localhost/Learning/public/Level2忆植,可見群組的名稱只是在代碼范圍內(nèi)給路由的一個“代號”,而并不是真正路由的一部分
Route::group(['as'=>'group::'],function(){
Route::get('Level2',['as'=>'Level2',function(){
returnroute('group::Level2');
}]);
});
——為命名路由生成URL
如果命名路由定義了參數(shù)谒臼,可以將該參數(shù)作為第二個參數(shù)傳遞給route函數(shù)朝刊。給定的路由參數(shù)將會自動插入 URL 中:
Route::get('make_file/{id}/profile', ['as' => 'profile', function ($id) {
$url = route('profile', ['id' => 1]);
return $url;
}]);
以上代碼輸入:http://localhost/Learning/public/make_url/15/profile
返回結(jié)果為:http://localhost/Learning/public/make_url/1/profile
可見該段代碼將‘id’寫死為1,無論路由中輸入的{id}是什么蜈缤,生成的都是id為1時的URL
嘗試將代碼里route函數(shù)中的第二個參數(shù)注釋掉拾氓,即為route('profile'),運行結(jié)果報錯底哥,于是推測route()函數(shù)第一個參數(shù)是需要生成URL的route的名稱咙鞍,函數(shù)會在確認該route之后去判斷該route中是否存在變量(比如該例中的id),為了驗證該猜想叠艳,決定構(gòu)造一個含有兩個參數(shù)的route奶陈,然后只給route()函數(shù)兩個參數(shù),如果會報相同的錯附较,說明猜想成立
//構(gòu)造該路由用于探索route函數(shù)的工作機制
Route::get('make_url_2/{id}/{name}/profile', ['as'=>'2vars',function($id) {
$url= route('2vars',$id);
return$url;
}]);
果然報了Missing required parameters的錯誤吃粒,可見猜想成立
——Laravel有沒有使用手冊(有,已經(jīng)找到了拒课,順便看一下怎么做CHM徐勃,好好玩)
——意識到一個小問題,如果不同路由給相同的別名會怎么樣早像,試一下僻肖。。卢鹦。臀脏。搞事情
試了一下,結(jié)果很奇怪,暫時沒有判斷出其中的機制
——路由組群
中間件是什么揉稚?秒啦?? ?似乎后文會有解釋搀玖,暫時跳過
命名空間余境,感覺就是為了防止重名而加的地址
路由群組可以為其中的子路由添加中間件和命名空間,代碼略
路由群組對于子路由只有給路由名稱提供統(tǒng)一前綴灌诅,以及給所有子路由提供相同性質(zhì)這樣的作用芳来,而并不能影響其URL,
——子域名路由猜拾,比較有趣即舌,在group路由之中,可以捕獲參數(shù)关带,其中所有的子路由也都會有捕獲這個參數(shù)的能力侥涵,以下為例子:。宋雏。。务豺。磨总。子域名沒有設(shè)置好,很煩
——路由前綴
//路由前綴
Route::group(['prefix'=>'admin'],function() {
Route::get('subfix',function() {
return'hello';
// 匹配 "/admin/users" URL}); ?});
//路由前綴可以含有變量
Route::group(['prefix'=>'{admin}'],function() {
Route::get('subfix_2',function($admin) {
return'hello '.$admin;
// 匹配 "/admin/users" URL}); ?});
//輸入:http://localhost/Learning/public/kidding/subfix_2
//返回:hello kidding
——防御CSRF攻擊