使用不同的数据在laravel中预加载视图

时间:2016-11-01 18:25:13

标签: php laravel laravel-5 sentinel

我正在使用Laravel和sentinel来开发权限系统,但它的设计是为了让用户可以从复选框表单中选择和取消选择角色具有的权限。我已经编写了可以分配权限的部分,但是我需要在用户请求页面时标记已经分配的复选框。你怎么建议接近这个?我正在使用中间件

<?php

namespace App\Http\Middleware;

use Closure;
use Cartalyst\Sentinel\Laravel\Facades\Sentinel;

class PermissionsMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */

    public function handle($request, Closure $next)
    {
        $user = Sentinel::findById(1);
        $permisos = array(array_keys($user['permissions']))

        return $next($request);
    }
}

但是,我不知道如何将数据从中间件传递到视图。

1 个答案:

答案 0 :(得分:0)

我不认为为此目的建议使用中间件,但如果你仍然想这样做,你可以尝试使用:

View::share ( 'permisos', $permisos );

分享&#39; permisos&#39;变量以及中间件之后的观点。

所以你的代码看起来像这样:

<?php

namespace App\Http\Middleware;

use Closure;
use Cartalyst\Sentinel\Laravel\Facades\Sentinel;

class PermissionsMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */

    public function handle($request, Closure $next)
    {
        $user = Sentinel::findById(1);
        $permisos = array(array_keys($user['permissions']))
        View::share ( 'permisos', $permisos );

        return $next($request);
    }
}