更新あなたの最後のコメントに基づいています。
あなたの質問に対する最も簡単な答えは、関係belongsToManyとhasManyを使用することです。
私を説明しましょう。 4人のユーザー、ツアー、tour_user、写真が必要です。IDが含まれているテーブル
ユーザー、名前
ツアーテーブル含まID、名前、
tour_userテーブルには、ID、tour_idを含ん
写真のテーブルはID、名前、USER_IDを含んUSER_ID、
をtour_id
なぜbelongsToMany?各ユーザーに複数のツアーがあり、各ツアーには複数のユーザーがいるためです。そこで、3つ目のテーブルtour_userを使用して両方のテーブルをリンクします。それは正規化にも役立ちます。
今、私たちは関係のためのテーブル構造を検討していること、のは、Userモデルでそれを定義してみましょう:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public function tours()
{
return $this->belongsToMany('App\Tour');
}
/* To retrieve photos of a user */
public function photos()
{
return $this->hasMany('App\Photo');
}
}
ツアーモデル:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tour extends Model
{
public function users()
{
return $this->belongsToMany('App\User');
}
/* To retrieve photos of a tour*/
public function photos()
{
return $this->hasMany('App\Photo');
}
}
今写真モデル:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Photo extends Model
{
public function users()
{
return $this->belongsTo('App\User');
}
public function tours()
{
return $this->belongsTo('App\Tour');
}
}
を使用して、特定のユーザーのすべてのツアーを検索しましょう
public function show($id)
{
$user = User::find($id);
return view('show')->withUser($user) ;
}
今すぐショービューで、ページはすべて、そのユーザのツアーや彼の写真
@foreach($user->tours as $tour)
{{ $tour->name }}
@foreach($tour->photos as $photo)
@if($user->id == $photo->user_id)
{{ $photo->name }}
@endif
@endforeach
@endforeach
特定のツアーを行った特定のユーザーの写真を検索する必要があります。私はこれが私の問題を解決する方法を見ていません – kjanko
foreach($ user-> photos as $ photo){$ photo-> name;} –
@kjankoあなたの要件に基づいて答えによって完全に更新します。それがあなたのために働くことを願ってください。 –