2016-08-15 69 views
1

我想在部分内容中仅显示一些内容以便登录用户。内容从不显示。下面是代码位:Auth :: check()在视图中总是返回false

@if(Auth::check()) 
    <a href="{{ route('backend.blog.edit', $id) }}"> 
     Edit 
    </a> 
    @endif 

包含部分是提供给大家的页面;我只想隐藏这一点内容。 任何人都可以指向正确的方向吗?

附加信息 这是我试图编写的CMS系统的一部分。所以,控制器通过服务提供者(RouteServiceProvider)调用。我正在基于页面模型拉动路线。下面是相关的方法:

public function map(Router $router) 
    { 
    $this->mapWebRoutes($router); 

    foreach (Page::all() as $page) { 
     $router->get($page->uri, ['middleware' => 'web', 'as' => $page->name, function() use ($page, $router) { 
      return $this->app->call('App\Http\Controllers\[email protected]', [ 
       'page' => $page, 
       'parameters' => $router->current()->parameters() 
      ]); 
     }]); 
    } 
    } 
+0

你尝试AUTH() - >检查(),而不是验证::检查()? – KmasterYC

+0

@KmasterYC我做到了。 –

+0

你确定这个控制器是通过'auth'中间件吗? –

回答

0

我找到了解决办法

public function map(Router $router) 
{ 
    $this->mapApiRoutes(); 

    $this->mapWebRoutes(); 

    Route::group(['middleware' => 'web'], function ($router) { 

    if (! app()->runningInConsole()) { 
     foreach (ProductCategory::all() as $category) { 
      $router->get($category->uri, ['as' => $category->name, function() use ($category, $router) { 
       return $this->app->call(
        'App\Http\Controllers\[email protected]', [ 
        'category' => $category, 
        'parameters' => $router->current()->parameters() 
       ]); 
      }]); 
     } 
    } 

    }); 

} 
+0

稍微解释了一下解决方案,所以OP可以从中学习,而不仅仅是复制粘贴它。 – davejal