laravel 5.2重定向消息

时间:2016-03-28 15:43:43

标签: php redirect laravel-5.2 laravel-blade

如果网站访问/页面的用户,我希望他重定向到带有消息的索引。如何在视图中访问重定向消息?我的路线:

Route::group(['middleware' => 'web'],function(){ 
     Route::get('/page', function () {
         return redirect('/')->withMessage(["warning"=> ["yeah","test"]]); // According official docs, this should work.
     }); 
     Route::get('/', 'Page@front');
});

我的页面控制器:

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\News;
use App\PageContact;
use Session;

class Page extends Controller{
    public function front(Request $Request){
        return view('index')->withNews("news");
}

重要:是的,我的网页已经包含在网络中间件中。请避免发布Laravel 3或Laravel 4解决方案。

2 个答案:

答案 0 :(得分:6)

应该是:

->with('warning', 'testing')

然后在视图中:

@if(session()->has('warning'))
    {!! session()->get('warning') !!}
@endif

答案 1 :(得分:0)

user2094178的回答是正确的,但您不必使用

->with('warning', 'testing')

它也可以(正如你所做的那样):

->withNews("news");
->withWarning('testing');

由于View-class使用魔术函数“__call”:

     /**
     * Dynamically bind parameters to the view.
     *
     * @param  string  $method
     * @param  array   $parameters
     * @return \Illuminate\View\View
     *
     * @throws \BadMethodCallException
     */
    public function __call($method, $parameters)
    {
        if (Str::startsWith($method, 'with')) {
            return $this->with(Str::snake(substr($method, 4)), $parameters[0]);
        }

        throw new BadMethodCallException("Method [$method] does not exist on view.");
    }
相关问题