【问题标题】:Eloquent where-()-firstOrFail() doesn't return attributes雄辩的 where-()-firstOrFail() 不返回属性
【发布时间】:2026-01-26 18:55:01
【问题描述】:

我正在使用 Laravel 4.1。我有一个表 profiles 和一个类 Profiles,它使用受保护的 $table = 'profiles' 扩展 Eloquent。表中有一行 id = 1 和 first_name = 'Admin'。我有以下代码:

$profile->where('id','=',1)->firstOrFail();

我没有遇到任何失败,但我也没有获得任何表属性。 $profile->first_name 为空。我做错了什么?

【问题讨论】:

    标签: php laravel laravel-4 eloquent


    【解决方案1】:

    当你使用 where() 方法时,将它与这样的模型一起使用

    $profile = Profile::where('id','=',1)->firstOrFail(); 
    

    $profile = Profile::where('id',1)->firstOrFail(); 
    

    如果需要使用 id 搜索,请使用findOrFail() 方法

    $profile = Profile::findOrFail(1);
    

    【讨论】:

      【解决方案2】:

      您可以使用findfindOrFail 方法,它自己按id 列搜索。

      $profile->findOrFail($id);
      
      // or using Facade
      
      Profile::findOrFail($id);
      

      【讨论】:

        【解决方案3】:

        愚蠢的新手!我没有使用静态方法,而是尝试在实例化对象上使用这些方法。

        Profile::find(1);
        

        对比

        $profile->find(1);
        

        【讨论】:

          最近更新 更多