【问题标题】:ErrorException Method Illuminate\Auth\SessionGuard::company does not existErrorException 方法 Illuminate\Auth\SessionGuard::company 不存在
【发布时间】:2019-02-24 13:11:26
【问题描述】:

我在使用 Laravel 框架时遇到问题。我正在尝试构建一个简单的@ifand@elsefunction。

ErrorException 方法 Illuminate\Auth\SessionGuard::company 不存在

这是我的布局 app.blade.php 的代码

@if(auth::user())
      {{auth::user()->name}}
    @else
      {{auth::company()->name}}
    @guest
    <p>i am here</p>
    @endguest

【问题讨论】:

  • 你可以试试:Auth::user()-&gt;company-&gt;name
  • 我猜测问题出在company 上,只是为了清楚地说,如果用户未通过身份验证,则获取经过身份验证的公司名称。是这样吗?
  • 你在哪里定义了 company() 函数?在 laravel Auth 系统中找不到。

标签: php laravel


【解决方案1】:

{{auth::user()-&gt;name}} 确实有效,因为user() 将返回当前登录的身份验证模型

{{auth::company()-&gt;name}} 不起作用,因为company() 不是 auth 外观的默认函数。

您可以在控制器中使用return view('example')-&gt;with('company' =&gt; Company::first());,以便能够在代码中使用{{ $company-&gt;name }}。这是假设存在 Company 模型并且您只想显示第一个模型。

【讨论】:

    猜你喜欢
    • 2020-12-18
    • 2021-09-11
    • 2017-08-29
    • 2019-12-05
    • 2018-08-08
    • 2021-07-04
    • 2019-09-13
    • 1970-01-01
    • 2020-01-13
    相关资源
    最近更新 更多