laravel初始化配置
1恼琼、wamp版本需求(PHP 版本 >= 5.5.9|Wamp2.5)
2逝撬、開(kāi)啟rewrite和vhost
C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf
3,進(jìn)入C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf,添加一塊下面這樣的代碼
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "e:/code/laravel/public/"-------框架安裝目錄
ServerName minshop.com--------------訪問(wèn)項(xiàng)目的域名
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
4、在d:\wamp\bin\apache\apache2.4.9\conf\httpd.conf這個(gè)文件中開(kāi)啟下面這些php擴(kuò)展
php.ini:C:\wamp\bin\php\php5.5.12\php.ini
extension=php_openssl.dll
extension=php_mbstring.dll
extension=php_pdo_mysql.dll
5浅乔,最后進(jìn)入c:\windows\system32\drivers\etc\hosts,強(qiáng)hosts使用記事本打開(kāi)大咱,在底部加入127.0.0.1 項(xiàng)目訪問(wèn)域名如(minshop.com)
這一步修改可能由于沒(méi)有權(quán)限無(wú)法修改,可以將文件拷貝出來(lái)穷绵,在別處修改完成后在復(fù)制過(guò)來(lái)覆蓋原有的文件即可
laravel路由
首先先介紹一下常用的artisan命令:
1,php artisan list-----------------產(chǎn)看所有的artisan命令
2察蹲,php artisan make:controller 控制器的名稱-------這一條命令時(shí)創(chuàng)建一個(gè)新的控制器
3请垛,php artisan make:middleware 中間件的名稱-------這一條命令時(shí)創(chuàng)建一個(gè)中間件
4催训,php artisan route:list-----------------------這一條命令時(shí)查看routes.php這個(gè)文件中創(chuàng)建的路由
1洽议,表示加載框架首頁(yè)宗收,第一個(gè)參數(shù)表示瀏覽器地址欄的所填參數(shù),第二個(gè)是一個(gè)必報(bào)函數(shù)
Route::get('/', function () {
return view('welcome');
});
2亚兄,如果沒(méi)有將public目錄下面的.htaccess文件復(fù)制到根目錄里面混稽,則需要在地址欄中輸入blog.com/public/foo 就會(huì)輸出hello word----------注意,blog.com后面必須加上public 才能正常訪問(wèn)审胚。匈勋。。如果已經(jīng)將.htaccess偽靜態(tài)配置文件復(fù)制到根目錄下膳叨,則只需輸入blog.com/foo就會(huì)顯示hello word*/
Route::get('/foo', function () {
echo 'get';
});
3洽洁,laravel Route postman post 提交TokenMismatchException in VerifyCsrfToken.php line 53;Laravel默認(rèn)是開(kāi)啟了CSRF功能菲嘴,需要關(guān)閉此功能有兩種方法:打開(kāi)文件:app\Http\Kernel.php饿自,然后把這行注釋掉:'App\Http\Middleware\VerifyCsrfToken'*/
Route::post('/foo', function () {
echo 'post';
});
/*Route::put('/foo', function () {
echo 'put';
});
Route::match(['get', 'post'], '/test', function () {
echo "metch";
});
Route::any('/foo', function () {
echo "foo";
});*/
4在地址欄中輸入blog.com/user/123 就會(huì)輸出user 123*/
Route::get('user/{id}', function ($id) {
return 'User ' . $id;
});
5路由參數(shù)的約束,限定id的取值只能是0到9,否則將報(bào)錯(cuò)
Route::get("user/{id}",function($id){
return 'User'.$id;
})->where('id',"[0-9]+");
6龄坪,輸出設(shè)置的控制器指定的內(nèi)容
/*Route::get('/login','Admin\LoginController@index');*/
//Route::get('/user/profile','Admin\IndexController@index')->name('profile');
7昭雌,路由命名
//profile為http://blog.com/user,也即是路由的別名
/*Route::get('user',['as'=>'profile',function(){
echo route('profile');
return '你好';
}]);*/
//Route::get('user',['as'=>'profile','uses'=>'Admin\LoginController@index']);
//等效于上面的那個(gè)寫(xiě)法,只是將as中的路由別名寫(xiě)在了外面的name方法中
//Route::get('user','Admin\LoginController@index')->name('profile');
8健田,路由分組(將具有相同特性的路由劃分到一個(gè)組中)
//Route::get('admin/login','Admin\LoginController@login');
//Route::get('admin/index','Admin\LoginController@index');
Route::group(['prefix'=>'admin','namespace'=>'Admin'],function(){
Route::get('login','LoginController@login');
Route::get('index','LoginController@index');
Route::resource('article','ArticleController');
});
其中Route::resource是資源路由烛卧,這一條命令可以自動(dòng)創(chuàng)建出對(duì)應(yīng)的控制器中的方法如:
POST? ? ? | admin/article? | admin.article.store? | App\Http\Controllers\Admin\ArticleController@store
GET|HEAD? | admin/article? | admin.article.index? | App\Http\Controllers\Admin\ArticleController@index
GET|HEAD? | admin/article/create? ? ? ? | admin.article.create? | App\Http\Controllers\Admin\ArticleController@create
DELETE? ? | admin/article/{article}? ? ? | admin.article.destroy | App\Http\Controllers\Admin\ArticleController@destroy
PUT|PATCH | admin/article/{article}? ? ? | admin.article.update? | App\Http\Controllers\Admin\ArticleController@update
GET|HEAD? | admin/article/{article}? ? ? | admin.article.show? ? | App\Http\Controllers\Admin\ArticleController@show
GET|HEAD? | admin/article/{article}/edit | admin.article.edit? ? | App\Http\Controllers\Admin\ArticleController@edit
9,中間件---就是在路由上層添加了一層保護(hù)或者過(guò)濾
1妓局,web中間件中有一個(gè) \Illuminate\Session\Middleware\StartSession::class,意思是開(kāi)啟session服務(wù)总放;
2,自定義中間件
第一步>>>
在kernel.php中的 protected $routeMiddleware = [當(dāng)中自定義一個(gè)如:'admin.login' => \App\Http\Middleware\AdminLogin::class,
意思是在app\Http\middleware中新建一個(gè)文件為AdminLogin.php---可以使用php artisan make:middleware AdminLogin來(lái)創(chuàng)建文件
第二步>>>
在Adminlogin.php中定義自己的過(guò)濾規(guī)則就行了
Edit ByMaHua