最近使用laravel5.6作了博客項目,其中碰到了一些問題,如今總結一下:(基礎學習篇)php
一、laravel的下載laravel
①手動下載安裝包,到laravel官方網站下載便可web
②經過composer下載,安裝composer以後,經過命令下載laravel,命令在laravel官網均可以看到(composer create-project --prefer-dist laravel/laravel blog)json
二、本地域名配置數組
①打開httpd.conf,開啓rewrite和vhost配置項,以下:session
(LoadModule rewrite_module modules/mod_rewrite.so);app
(LoadModule vhost_alias_module modules/mod_vhost_alias.so);composer
(Include conf/extra/httpd-vhosts.conf)。ide
並修改post
<Directory "D:/phpStudy/PHPTutorial/Apache/cgi-bin">
AllowOverride all
Options None
Require all granted
</Directory>
②在修改vhost第二個配置項後會在Apache\conf\extra生成httpd-vhosts.conf文件,添加虛擬域名以下
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "D:/****/"
ServerName ****
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
③修改電腦系統文件hosts,添加虛擬域名,路行爲(C:\Windows\System32\drivers\etc),添加虛擬域名 127.0.0.1 ****
注:在配置的過程當中,若是怕修改錯誤致使文件不能使用,能夠先備份在修改,此外修改完成後,須要重啓Apache才能訪問,域名後面須要加上 '/',不然會被當作搜索條件。
三、路由命名
Route::group(['as' => 'admin::'], function () { Route::get('dashboard', ['as' => 'dashboard', function () { } ]); });
Route::get('/test', 'Admin\IndexController@index')->name('profile');
路由命名能夠直接經過Route(‘profile’)訪問路由的地址
注:路由傳參的時候須要加上{},若爲可選參數加上?,能夠對參數進行限制,以下
// Route::get('reg/{id}', function ($i) {
// return 'User '.$i;
// })->where(['id'=>'[0-9]+']);
四、artisan建立控制器和model
php artisan make:controller IndexController;
php artisan make:model UserModel;
直接建立分別會生成在Controllers和App目錄下,若是本身建立了文件夾,能夠加上路徑,例如:
php artisan make:model Http/Model/UserModel;則直接在App/Http/Model/UserModel/文件夾下
五、模板傳參
單個變量或者數組經過with('a',$a)進行傳遞,當傳遞多個參數時,使用compact進行傳參,格式如return view('myview',compact('x','y'));x、y能夠是數組也能夠是變量
注意:在使用back()傳遞參數時,老是獲取不到信息,緣由是學習過程參考的laravel5.2版本的視頻教程,在更新中web中間件已經自動加載,不須要重複加載,致使session變量沒法存儲,最終沒能獲取到值,解決辦法,去掉web中間件。
六、更換電腦訪問laravel,報403錯誤,不容許訪問地址,打開了phpstudy容許目錄列表,解決了問題。問題出如今vhosts-ini文件中,修改以後正常訪問。
七、使用postman模擬訪問方式時,老是報錯頁面過時再試一次,是因爲laravel的csrf驗證致使沒法經過,解決辦法在VerifyToken.php文件中,加上須要訪問的地址。
八、在使用artisan命令建立控制器時,總報錯:unable to detect application namespace;查了好多網站,最終發現全部答案都是在composer.json文件中多了逗號,因而查看conposer.json文件,發現以前學習備註了配置的用途,刪掉以後,artisan命令能夠正常使用。
建立命令的另外一個報錯:warning:require(E:.....www\..../vendor/autoload.php):failed to open stream; fatal :error require( )。解決辦法:進入根目錄執行命令composer update。多是缺乏文件致使錯誤
九、laravel對標籤的過濾有本身的解決辦法,在模板輸出是兩邊加上!!$a!!便可
十、模板引擎,在模板中可使用@yield()和@section()@show,對於後者能夠在模板中繼續添加內容,子類繼承時只須要加上parent便可加載。
子類繼承模板使用@extends(‘layouts.admin‘),注:extends需加 s ,路徑填寫是用‘ . ’隔開