簡體   English   中英

Laravel表之間雄辯的關系

[英]Laravel eloquent relationship between tables

陷入了Laravel雄辯的關系中。 我有兩張桌子。

燃料含有

  • id,fuel_name,fuel_rate

機器包含

  • id,machine_name,machine_rate fuel_id

    領域。

fuel_id是外鍵。

我從laravel.com嘗試過一些例子

Machine.php中

class Machine extends Model
{
    protected $table = 'machine';

    public  function machineinfo()
    {
        return $this->hasMany('App\Fuel','id');
    }
}

並在控制器中

$items = Machine::find(1)->machineinfo;

我想在輸出中看到機器名稱,機器代碼,燃料名稱和燃料率。

但輸出是

列未找到:1054未知列在'fuel.machine_id' 'where子句'(SQL:SELECT * FROM fuel ,其中fuelmachine_id = 1和fuelmachine_id不為空)

請檢查laravel hasMany部分的結尾: https//laravel.com/docs/5.8/eloquent-relationships#one-to-many

hasMany的第二個參數是外鍵,在本例中表示機器表中的fuel_id 因此,不要將'id'作為第二個參數傳遞,而應該發送'fuel_id'

$this->hasMany('App\\Fuel','fuel_id')

此外,您可能不需要使用第二個參數。 請參閱上面相同鏈接中的命名約定。 根據提供的App\\Fuel類自動檢測外鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM