我有两个模型Award
和GotAward
,GotAward
模型具有Award
模型的外键。
我想从Award
模型中获取所有记录,然后检查Award
模型中的每个GotAward
模型ID,我必须向用户显示"您有这些奖项"。
我有以下代码:
$awards = App\Award::all();
foreach ($awards as $checkAward) {
$unlockedAwards = App\unlockedAward::where('award_id','=',$awards->id);
}
这是一个好习惯吗?
答案 0 :(得分:1)
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class GotAward extends Model
{
public function award(){
return $this->hasOne('App\Award');
//You can also specify the relationship in case of different fields in the DB table. By convention Laravel will check award_id in gotawards table
/* return $this->hasOne('App\Award', 'award_id', 'gotaward_id');*/
}
}
查询GotAward模型后。
$result = $GotAward::where('condtion', 'value')->first();
$result->award->award_column_to_shwo_to_user
将包含奖励表中的数据。
看一下Eloquent关系,here.
答案 1 :(得分:0)
没有 请查看relationships
在您的奖励模型中指定hasMany后,您可以做类似的事情
$award->AllAwards()
答案 2 :(得分:0)