laravel澶氳〃鎬庝箞鑱斿悎鏌ヨ
鍦↙aravel涓紝鍙互浣跨敤Eloquent ORM鏉ヨ繘琛屽琛ㄨ仈鍚堟煡璇€?/p>
鍋囪鎴戜滑鏈変袱涓〃锛屼竴涓槸users琛紝鍙︿竴涓槸posts琛ㄣ€倁sers琛ㄥ瓨鍌ㄤ簡鐢ㄦ埛鐨勪俊鎭紝鑰宲osts琛ㄥ瓨鍌ㄤ簡鐢ㄦ埛鍙戣〃鐨勫笘瀛愩€?/p>
鎴戜滑鍙互瀹氫箟涓や釜妯″瀷锛屼竴涓槸User妯″瀷锛屼竴涓槸Post妯″瀷銆傚湪User妯″瀷涓紝鎴戜滑鍙互瀹氫箟涓€涓笌Post妯″瀷鐨勫叧鑱斿叧绯伙細
class User extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
鍦≒ost妯″瀷涓紝鎴戜滑鍙互瀹氫箟涓嶶ser妯″瀷鐨勫叧鑱斿叧绯伙細
class Post extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
}
鐜板湪锛屾垜浠彲浠ヤ娇鐢ㄨ繖涓や釜妯″瀷杩涜鑱斿悎鏌ヨ銆備緥濡傦紝鎴戜滑鎯宠鑾峰彇鎵€鏈夌敤鎴蜂互鍙婁粬浠殑鍙戣〃鐨勫笘瀛愶紝鍙互浣跨敤浠ヤ笅浠g爜锛?/p>
$users = User::with('posts')->get();
foreach ($users as $user) {
echo $user->name;
foreach ($user->posts as $post) {
echo $post->title;
}
}
鍦ㄤ笂闈㈢殑浠g爜涓紝鎴戜滑浣跨敤with(鈥榩osts鈥?鏂规硶鏉ラ鍔犺浇鐢ㄦ埛鐨勫笘瀛愩€傝繖鏍凤紝鍦ㄨ幏鍙栫敤鎴锋暟鎹椂锛屽笘瀛愭暟鎹篃浼氳涓€璧疯幏鍙栵紝閬垮厤浜哊+1鏌ヨ鐨勯棶棰樸€?/p>
闄ゆ涔嬪锛岃繕鍙互浣跨敤鍏朵粬鏂规硶鏉ヨ繘琛屽琛ㄨ仈鍚堟煡璇紝渚嬪浣跨敤join鏂规硶鏉ユ墜鍔ㄦ寚瀹氳〃涔嬮棿鐨勫叧鑱斿叧绯伙細
$users = DB::table('users')
->join('posts', 'users.id', '=', 'posts.user_id')
->select('users.*', 'posts.title')
->get();
foreach ($users as $user) {
echo $user->name;
echo $user->title;
}
鍦ㄤ笂闈㈢殑浠g爜涓紝鎴戜滑浣跨敤join鏂规硶鏉ユ寚瀹歶sers琛ㄥ拰posts琛ㄤ箣闂寸殑鍏宠仈鍏崇郴锛屽苟浣跨敤select鏂规硶鏉ラ€夋嫨闇€瑕佺殑瀛楁銆?/p>
浠ヤ笂灏辨槸鍦↙aravel涓繘琛屽琛ㄨ仈鍚堟煡璇㈢殑鏂规硶銆傛牴鎹叿浣撶殑涓氬姟闇€姹傦紝鍙互閫夋嫨浣跨敤Eloquent妯″瀷鍏宠仈鎴栬€呬娇鐢ㄦ煡璇㈡瀯寤哄櫒鏉ヨ繘琛屽琛ㄨ仈鍚堟煡璇€?/p>