2017-01-03 5 views
0

ピボットテーブルに2つの列の値を取得する方法があるかどうかは、各行。Laravel - ピボットテーブルのユニークな行IDを使用してピボットテーブルの列から値を取得

私はジョブモデル、ロケーションモデル、アプリケーションモデルを持っています。

ジョブとロケーションには、ピボットテーブル "job_location"との多対多の関係があります。それに含まれる2つの外部キーは、job_idとlocation_idです。しかし、私はまたすべての行に一意の増分ID、jobloc_idを与えました。

私はjobloc_idしか持っていない場合、他の2つの列の値をどのように調べることができますか?

$jobLoc = $location->jobs->wherePivot('jobloc_id', '=', 1); 
return $jobLoc->job_id; 

返す "私はそれを使用している人の参照を見たが、ピボットが存在しないメソッド"を返します。私が持っているものはすべてjobloc_idで、これに基づいて他の2つの値を検索しようとしているので、それらから属性を引き出すためにジョブと場所を完全に読み込むことができます。

いずれのポインタも大歓迎です。これはLaravel 5.3にあります。

+0

ピボットテーブルにはID列が含まれていないため、使用しないでください。 – AntoineB

+0

データベース理論では、ピボットテーブルに@AntoineBというID列がありません。 代わりに、主キーは両方の関係者の組み合わせです。 ジョブと場所の関係をエンティティに昇格させ、その上に2つのN-1の関係を持ちます.1つはJobと&もう1つはLocationを持ちます。 または単にLaravelクエリビルダを使用してください –

+2

@AntoineBピボットテーブルに一意のID列を持つことは何も問題ありません。それは必須ではありませんが、役に立つことがあります。私が行った複数のガイドは、まだ1つ追加していると言いました。私は基本的に1つの番号と<->の仕事の組み合わせにアクセスしようとしています。 – Octoxan

答えて

0

あなたは、ピボットテーブルにID(例えばjobloc_id)を添加していて、IDによって行を取得したい場合は、単にクエリビルダを使用します。

DB::table('job_location')->where('jobloc_id', 1)->first(); 

ますことを行うための最速かつ最も単純な方法ですピボットテーブルに一意の行IDを持つ

+1

これを試してみました。しかし、ピボットテーブルだけのモデルを完成させてくれました。これは私にもう少しコントロールを与えています。 – Octoxan

関連する問題