【问题标题】:Laravel 5 error Call to undefined method Illuminate\Database\Query\Builder::TestLaravel 5 错误调用未定义的方法 Illuminate\Database\Query\Builder::Test
【发布时间】:2015-05-15 13:44:02
【问题描述】:

我在尝试检索我们用来加载到视图中以创建选择列表的数组列表时收到以下错误。

错误: 调用未定义的方法 Illuminate\Database\Query\Builder::albums

在我们的控制器中,我们使用以下内容:

$albums = \Auth::user()->albums->lists('name', 'id');

我们在 Albums.php 模型中使用:

<?php namespace App\Models;

use Illuminate\Database\Eloquent\Model;

/**
 * App\Models\Albums
 *
 */
class Albums extends Model
{
    protected $table = 'albums';
}

在我们的主文件中:

public function albums()
{

    return $this->hasMany('App\Models\Albums', 'name', 'id');
}

【问题讨论】:

    标签: php list laravel eloquent


    【解决方案1】:

    问题是 \Auth::user() 对象没有相册功能

    album() 函数必须在 User 模型类中创建

    【讨论】:

    • 你能举例说明如何做到这一点吗?
    • \Auth::user() 返回 Auth 模型对象。在 config/auth.php 中,您可以配置 Auth 模型(默认为 User 模型)。详情请查看laravel.com/docs/master/authentication
    【解决方案2】:

    四处搜索后,我通过将以下内容添加到 User() 类来解决它。

    public function albums() 
    {
        return $this->belongsTo('App\Media');
    }
    

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 2018-10-03
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      相关资源
      最近更新 更多