laravel 博客

最近使用laravel5.6做了博客项目,其中碰到了一些问题,现在总结一下:(基础学习篇)

1、laravel的下载

  ①手动下载安装包,到laravel官方网站下载即可

  ②通过composer下载,安装composer之后,通过命令下载laravel,命令在laravel官网都可以看到(composer create-project --prefer-dist laravel/laravel blog

2、本地域名配置

  ①打开httpd.conf,开启rewrite和vhost配置项,如下:

  (LoadModule rewrite_module modules/mod_rewrite.so);

  (LoadModule vhost_alias_module modules/mod_vhost_alias.so);

  (Include conf/extra/httpd-vhosts.conf)。

  并修改

  <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才能访问,域名后面需要加上 '/',否则会被当做搜索条件。

3、路由命名

  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]+']);

4、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/文件夹下

5、模板传参

  单个变量或者数组通过with('a',$a)进行传递,当传递多个参数时,使用compact进行传参,格式如return view('myview',compact('x','y'));x、y可以是数组也可以是变量

  注意:在使用back()传递参数时,总是获取不到信息,原因是学习过程参考的laravel5.2版本的视频教程,在更新中web中间件已经自动加载,不需要重复加载,导致session变量无法存储,最终没能获取到值,解决办法,去掉web中间件。

6、更换电脑访问laravel,报403错误,不允许访问地址,打开了phpstudy允许目录列表,解决了问题。问题出现在vhosts-ini文件中,修改之后正常访问。

7、使用postman模拟访问方式时,总是报错页面过期再试一次,是由于laravel的csrf验证导致无法通过,解决办法在VerifyToken.php文件中,加上需要访问的地址。

8、在使用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。可能是缺少文件导致错误

9、laravel对标签的过滤有自己的解决办法,在模板输出是两边加上!!$a!!即可

10、模板引擎,在模板中可以使用@yield()和@section()@show,对于后者可以在模板中继续添加内容,子类继承时只需要加上parent即可加载。

  子类继承模板使用@extends(‘layouts.admin‘),注:extends需加 s ,路径填写是用‘ . ’隔开

 

 

 
    

 

posted @ 2018-08-06 20:53  进阶丶xiao路  阅读(205)  评论(0编辑  收藏  举报