【问题标题】:Laravel - retrieve all user with their project from two tables using EloquentLaravel - 使用 Eloquent 从两个表中检索所有用户及其项目
【发布时间】:2017-02-26 06:27:52
【问题描述】:

我有两张桌子

1- 项目 2- 客户

我需要从客户表中获取名称,从项目表中获取项目名称

我的项目类有

public function projectClient()
    {
        return $this->hasMany('User');
    }

我的用户类有

    class User extends Eloquent implements UserInterface, RemindableInterface
{

    use UserTrait, RemindableTrait;

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'client';

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = array('password', 'remember_token');

    public function project()
    {
        return $this->belongsTo('Projects', 'id');
    }

}

在我的客户控制器中

$clients = User::with('project')->get();
        //dd($clients);
        return View::make('admin.manageClients.viewClients', compact('clients'));

现在在视图中我试试这个

@foreach($clients as $clt)
{{ $clt->first_name }} //work fine
{{ $clt->pro_title }} //didn't show the project title
@endforeach

如何在此处显示此项目标题?

更新

@Mahfuzul Alam 和 @WebKenth 建议我这样做

{{ $clt->project->pro_title }}

但还是有问题

在我的数据库中,我有两个用户,project_id = 1 但在我的view 第一个用户project_id = 1 和第二个project_id = 2

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    考虑将pro_title 作为您的项目标题列,试试{{ $clt->project->pro_title }}。如果它不起作用,请他们粘贴您的 User 类的代码,让我们看看。

    【讨论】:

    • 现在我不明白为什么我会在这里得到错误的结果任何帮助请
    • 似乎我没有进入模式,它是 User 类它是 return $this->belongsTo('Projects', 'id');,它应该是 return $this->belongsTo('Projects', 'project_id'); 无论如何,谢谢所有
    【解决方案2】:

    考虑将 projectClient 关系重命名为 client()

    这样您就可以调用$project->client 并从项目中接收客户端对象。

    至于您的问题,您没有在客户端引用 Project 对象,您有这种关系,因此对 $clt->projects 的简单调用将在每个 $clt 上返回 Project 对象。

    【讨论】:

    • 现在我将projectClient 关系更改为client() 但我不明白为什么我在这里得到错误的结果我应该看到client_1pro_1client_2pro_1但我得到client_1pro_1client_2pro_2 为什么我得到pro_2client_2 它应该是pro_1
    猜你喜欢
    • 1970-01-01
    • 2019-03-04
    • 2021-06-04
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    相关资源
    最近更新 更多