新框架使用:
路由(訪問) -> 控制器(調用) -> 視圖
要弄明白
路由如何創建?
控制器如何創建 並且 如何調用視圖
視圖如何創建?
如何操作數據庫獲取數據庫,傳遞給視圖
如何如何顯示數據
1 創建視圖
控制器存放目錄:app\Http\Controllers\平臺名稱\控制器名
命令:php artisan make:controller 平臺名\控制器名Controller
說明:使用artisan命令時必須在項目根目錄下,因爲artisan文件在根目錄下
2 創建路由
無參路由
// 語法
//【單個請求】
// Route::請求類型(請求的URL,匿名函數或控制器方法)
//請求類型:常用post,get,還有put,delete等共8中
//【多個請求】
//響應多個請求Route::match([請求類型],請求的URL,匿名函數或控制器方法)
// 響應所有請求Route::any(請求的URL,匿名函數或控制器方法);
Route::get('/', 'Home\Day1Controller@index');
Route::get('/', function (){
return 'made in China';
});
Route::match(['get', 'post', 'put'], '/', function (){
return '響應多種類型';
});
Route::any( '/', function (){
return '響應所有類型';
});
有參路由
// 有參路由
// 語法:
//Route::HTTP請求類型(請求的URL/{參數名稱},
// 閉包函數或控制響應的方法)->where(參數名稱,正則表達式)
// 單參
Route::get(‘/{id}’, function (id){
return ‘單參’.’__’. id;
});
Route::get(‘/{name}’, ‘Home\Day1Controller@index’);
// 多參
Route::get(‘/{id}/{name}’, ‘Home\Day1Controller@index’);
Route::get(‘/{id}/{name}’, function (
return ‘id:’.id.'__'.'name:'. name;
});
帶默認值參數
//單參帶默認值
Route::get('/{name?}', 'Home\Day1Controller@index');
//多參數默認值
Route::get('/{id?}/{name?}', 'Home\Day1Controller@index');
正則表達式限制參數
// 限制一個
Route::get('/{id}/{name}', 'Home\Day1Controller@index')->where('name','[a-zA-Z]+');
// 限制多個個
Route::get('/{id}/{name}', 'Home\Day1Controller@index')->where([
'name' => '[a-zA-Z]+',
'id' => '[0-9]+'
]);
路由羣組
//prefix是將子路由【請求url】公共部分提取
Route::group(['prefix'=>'a', 'namespace'=>'Home'],function (){
// Route::get('/a/test1','Home\Day1Controller@index');
// Route::get('/a/test2','Home\Day2Controller@index');
// Route::get('/a/test3','Home\Day3Controller@index');
Route::get('/test1','Day1Controller@index');
Route::get('/test2','Day2Controller@index');
Route::get('/test3','Day3Controller@index');
});
路由別名
//路由別名
Route::get('/test1/asdf/asdfasd/asdfasd/asdfasd',[
'as' => 'test', 'uses' => 'Home\Day1Controller@index'
]);
Route::get('/test1/asdf/asdfasd/asdfasd/asdfasd',[
'as' => 'test',
function(){
return 888;
}
]);
別名使用
Route::get('/',function (){
return view('welcome');
});
// welcome.blade.php文件
// route('test')將別名解析爲真正的URL
<form action="{{ route('test') }}">
<input type="submit" value="提交">
</form>