最近使用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 ,路径填写是用‘ . ’隔开