【问题标题】:laravel eloquent - match data stored within arraylaravel eloquent - 匹配存储在数组中的数据
【发布时间】:2016-08-16 19:21:13
【问题描述】:

我有一个多选表单可以在contact 表中存储多个client_id

 {!! Form::select('client_id[]', $clients, null, ['multiple'=>true]) !!}

当我显示单个客户时,我希望显示相关联系人。

我的client 模型具有定义为 1:many 的关系:

public function contact()
{
    return $this->hasMany('App\Models\contact');
}

通常,对于非数组项,我会使用:

$contacts = $client->contact()->get();

要获取相关联系人,但由于client_id 以数组形式存储在我的contact 表中,我该如何获取这些数据?

【问题讨论】:

    标签: php arrays laravel eloquent


    【解决方案1】:

    我真的认为你只是想要这个:

    $contacts = $client->contact()->lists('id', 'name')->toArray();
    

    请注意,您没有指定您的 Laravel 版本,但在 5.1+ 列表中返回一个 Illuminate\Support\Collection 实例,但在以前的版本中它返回一个 Array

    旁注

    您的hasMany 关系应定义为复数而非单数:

    public function contacts()
    

    这绝不是必要条件,但它更好地定义了您的关系类型。

    【讨论】:

    • 这不起作用。它与"2","3" 数组中的2 的client_id 不匹配
    猜你喜欢
    • 2016-05-11
    • 2015-12-07
    • 2019-04-07
    • 2019-12-24
    • 2020-09-20
    • 1970-01-01
    • 2021-12-23
    • 2019-03-08
    • 2022-10-17
    相关资源
    最近更新 更多