Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 如何使用外键解决一对一关系的问题_Laravel_Laravel 4_Eloquent - Fatal编程技术网

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');
}