これはちょっと複雑ですが、何でも..わかりました、4つのテーブルがあります
1-Projects
id | int 11
name
2-Sections
id | int 11
project_id | int 11
name
3-Users
id | int 11
4-User_Section_project (this table is used to assign users to sections they will work on in the project
id | int 11
project_id | int 11
section_id | int 11
user_id | int 11
とにかくORMを使用してそのようなものを機能させ、割り当てられたセクションのみを取得することはありますか
$sections = $user->projects()->sections()
User モデルで次のコードを使用して作成しました
public function workshops()
{
return $this->belongsToMany('section', 'user_project_section', 'user_id', 'section_id')->whereIn('user_project_section.project_id', array(1,2,3));
}
そして、私はそれをそのように呼びます
@foreach ( $user->sections as $section)
{{$section->name}}
@endforeach
このコードは、プロジェクト 1、2、3 のユーザーに関連付けられたセクションを取得します。指定したプロジェクト用に作成したい場合は、パラメーターを渡します。問題は、ビューで関数の呼び出しに括弧 () を追加すると機能しないため、パラメーターを渡すことができないことです
@foreach ( $user->sections() as $section)
{{$section->name}}
@endforeach
さらに悪いことに、エラー メッセージがポップアップ表示されず、Mysql Server クエリが監視されていません。これはまったくクエリ (実行) されていません。私は本当にパラメータを渡す必要があります 詳細情報 : Print_r を使用すると、 () なしで Collection Object が返され、それを使用すると BelongsToMany Object が返されるように見えます。