簡體   English   中英

沒有實際外鍵的一對多關系

[英]One-to-many relationship without actual foreign key

我想像本教程中那樣建立一對多關系。

~~~一對多

一對多關系的一個示例是“有很多”評論的博客帖子。 我們可以像這樣對這種關系建模:

class Post extends Eloquent {

    public function comments()
    {
        return $this->hasMany('Comment');
    }

}

~~~

所以我想做一個模型發布(連接到表“ posts”)和一個模型注釋(連接到表“ comments”)。 我正在phpMyAdmin中創建表,而不是進行遷移(因為在線服務器上沒有SSH支持)。 注釋表中有一列“ posts_id”。

我可以用嗎 ...

$comments = Post::find(1)->comments;

..沒有在phpmyadmin中的兩個表之間定義外鍵關系?

如果答案為是。

我應該在“注釋”表中輸入列名“ post_id”還是類似的名稱,還是要使其起作用? 就像您將使用普通外鍵一樣?

您不必在MySQL端顯式聲明外鍵,但至少必須創建一個post_id列,該列將被Laravel用作外鍵。

當然,您可以根據需要命名此列,並在關系的聲明中進行指定:

class Post extends Eloquent {

    public function comments()
    {
        return $this->hasMany('Comment', 'post_primary_key');
    }

}

您還可以在PHPMyAdmin中將此列聲明為外鍵,以提高數據庫的健壯性,但這不是Laravel的事。

暫無
暫無

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

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