繁体   English   中英

Laravel 如何使用选定选项获取 pivot 表

[英]Laravel How to get pivot table with selected option

我有 pivot 表

我希望根据数据库中的内容来选择它。

使用我在选定选项部分编写的代码,仅返回treatment_id 1 的值。 如何使用医生 ID 1 获得所有治疗?

treatment_doctor

id | treatment_id|  doctor_id|
1  |    1        |    1      |
2  |    2        |    1      |
3  |    1        |    2      |

Treatment model

public function doctors()
    {
        return $this->belongsToMany(Doctor::class,'treatment_doctor','doctor_id','treatment_id')
    }

Controller

$treatments = Treatment::with('doctors')->get();

blade

 <select class="form-control" id="treatments" name="treatments[]" multiple="multiple">
   @foreach($treatments as $treatment)
    <option {{ collect($treatment->doctors->pluck('id')->toArray())->contains($treatment->id) ? 
    'selected' : '' }} value="{{ $treatment->id }}">{{ $treatment->name }}</option>
   @endforeach
 </select>

您可以通过在您的关系上调用->withPivot()来包含 pivot 表中的数据
https://laravel.com/docs/9.x/eloquent-relationships#retrieving-intermediate-table-columns

要基于 pivot 表进行查询,您可以使用->wherePivot()
完整信息在这里https://laravel.com/docs/9.x/eloquent-relationships#filtering-queries-via-intermediate-table-columns

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM