未定义的变量:错误— Laravel 5.2 - php

我是Laravel的新手,并使用laravel 5.2版。

我分别创建了一个控制器和一个名为ArticlesController和CreateArticleRequest的请求,并定义了一些验证规则。

CreateArticleRequest

<?php

namespace App\Http\Requests;

use App\Http\Requests\Request;

class CreateArticleRequest extends Request
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'title' => 'required|min:3',
            'body' => 'required|max:400',
            'published_at' => 'required|date',
        ];
    }
}

ArticlesController

<?php

namespace App\Http\Controllers;

use App\Article;
//use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Carbon\Carbon;
use App\Http\Requests\CreateArticleRequest;

class ArticlesController extends Controller
{

    public function add(){
        return view('articles.add');
    }

    public function create_article_row(CreateArticleRequest $request){
        Article::create($request->all());
        return redirect('articles/');
    }
}

当我在名为add.blade.php的模板中使用$ errors变量时,它显示错误未定义变量:$ errors
我试图解决问题,但没有解决。请告诉我哪里错了。
add.blad.php

{{ var_dump($errors) }}

未定义的变量:错误— Laravel 5.2 - php

参考方案

这是5.2升级中的一个重大问题。发生的事情是负责使errors变量可用于所有视图的中间件未被利用,因为该变量已从全局中间件移到了web中间件组。

有两种方法可以解决此问题:

在您的kernel.php文件(app / Http / Kernel.php)中,可以将middleware \Illuminate\View\Middleware\ShareErrorsFromSession::class移回protected $middleware属性。
用路由组包装所有web路由,然后将Web中间件应用于它们:

Route::group(['middleware' => 'web'], function() {
    // Place all your web routes here...(Cut all `Route` which are define in `Route file`, paste here) 
});

从此帖子复制Laravel 5.2 $errors not appearing in Blade

检查对象是否已在集合中-Laravel - php

当我循环一系列不同的结果时,我希望将对象添加到新集合中。查询:$osRed = Item::where('category', 'Hardware') ->where(function ($query) { $query->where('operating_system', '…

Laravel打印日志 - php

我正在尝试在控制台上打印日志:我输入了:use Log; 然后在控制器中使用 Log::info('test log'); 但它不打印任何日志。 参考方案 我认为您需要在运行后检查storage/logs/laravel.logLog::info('test log'); 希望这对您有帮助

如何在部署中管理Laravel队列? - php

我有一个用于Laravel的HA架构,具有多个Web和队列服务器以及零停机时间部署。它依赖Redis作为队列驱动程序。问题在于,在部署群集的滚动更新时,部署新版本的代码时,无法阻止新队列工作者处理来自旧代码版本的作业。Laravel中是否可以过滤来自与队列工作器不同的代码版本的作业? 参考方案 我看到2个解决方案,即使我从未尝试过,也不能保证它能正常工作,因…

Laravel 5发布资产 - php

我正在使用Laravel 5,我想将twitter bootstrap CSS和JS发布到公共目录。我确实使用Composer来获取twitter / bootstrap软件包,并且该部分运行正常,因此我想要的文件现在位于vendor / twitter / bootstrap / dist中。但是我无法使它工作。我得到“什么都没发布”。每次尝试时都会发送消…

如何在laravel中“记住我”登录选项? - php

所以我正在做的是当我注销表单(用户名和密码)时选中“记住我”复选框时,用户会记住用户数据,例如:所以这是我的代码,它不起作用:(// create our user data for the authentication $userdata = array( 'email' => Input::get('email…