Laravel 如何使用外键解决一对一关系的问题
我一直在我的模型中使用雄辩。我有以下两张桌子:Laravel 如何使用外键解决一对一关系的问题,laravel,laravel-4,eloquent,Laravel,Laravel 4,Eloquent,我一直在我的模型中使用雄辩。我有以下两张桌子: Singlecard ->id ->card_id Card ->id ->card_id 我的单卡型号具有以下功能: public function info() { return $this->hasOne('Card', 'card_id', 'card_id'); } 我用这个来获得卡片(卡片组中只有一张卡片用于我的测试) 它得到了正确的卡,我用var_dump验证了这一点。然而,
Singlecard
->id
->card_id
Card
->id
->card_id
我的单卡型号具有以下功能:
public function info()
{
return $this->hasOne('Card', 'card_id', 'card_id');
}
我用这个来获得卡片(卡片组中只有一张卡片用于我的测试)
它得到了正确的卡,我用var_dump验证了这一点。然而,问题是:
<div class="row singlecard">
<a class="" href="{{ $single->id }}">
<div class="large-2 columns">
<img src="{{ $single->info->card_image }}">
</div>
<div class="large-10 columns">
<div class="row">
<div class="large-12 columns">
<p>{{ $single->info->name }}</p>
</div>
</div>
<div class="row">
<div class="large-12 columns">
@foreach ($single->attributes as $attribute)
<p>{{ $attribute->alias }}</p>
@endforeach
</div>
</div>
</div>
</a>
</div>
这使我能够正确地查询关系。我需要更新我的模型的关联方式,更好地形成关系。我还需要改变模型,使单张卡片属于卡片。我认为应该是相反的 卡片包含关于各种卡片的所有信息,单张卡片是每个人手中/牌组中的信息。我以为这会让单身卡成为父母,但那是个错误。一旦我将模型中的函数更改为:
public function info()
{
return $this->belongsTo('Card', 'card_id');
}
然后它起作用了。为什么你指的是
card\u id
而不是id
?card\u id是卡信息的唯一id。那两个人很般配。这有点令人困惑。在卡片表中,id是行号,card_id是指卡片的id。在singlecard中,id是卡的唯一id,卡id与卡表中的卡id行匹配。
public function info()
{
return $this->belongsTo('Card', 'card_id');
}
public function info()
{
return $this->belongsTo('Card', 'card_id');
}