$user = User::all();
foreach($users as $user)
{
$user->items;
}
この時、どのようなクエリが実行されているかというと、
select * form Users;
select * from Items where Items.user_id = 1 and Items.user_id is not null;
select * from Items where Items.user_id = 2 and Items.user_id is not null;
…
app/Models/User.php //親モデル
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* ユーザーに関連している品物の取得
*/
public function item()
{
return $this->hasOne(Item::class);
}
}
app/Models/Item.php //子モデル
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Item extends Model
{
/**
* 品物に関連しているユーザーの取得
*/
public function user()
{
return $this->belongsTo(User::class);
}
}
app/Models/User.php //親モデル
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* ユーザーに関連している品物の取得
*/
public function items() // 複数形
{
return $this->hasMany(Item::class);
}
}
app/Models/Item.php //子モデル
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Item extends Model
{
/**
* 品物に関連しているユーザーの取得
*/
public function user()
{
return $this->belongsTo(User::class);
}
}
app/Models/User.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* ユーザーに関連している品物の取得
*/
public function items() // 複数形
{
return $this->belongsToMany(Item::class);
}
}
app/Models/Item.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Item extends Model
{
/**
* 品物に関連しているユーザーの取得
*/
public function users() // 複数形
{
return $this->belongsToMany(User::class);
}
}