久久99国产亚洲高清观看首页 ,亚洲国产激情一区二区三区,欧洲精品免费一区二区三区,国产10000部拍拍拍免费视频

PHP-web框架Laravel-數(shù)據(jù)庫(kù)(三) 世界快播報(bào)

來(lái)源:騰訊云     時(shí)間:2023-04-30 05:20:07


(相關(guān)資料圖)

三、模型關(guān)聯(lián)

Laravel框架中的模型關(guān)聯(lián)功能可以方便地實(shí)現(xiàn)數(shù)據(jù)庫(kù)表之間的關(guān)聯(lián)。在Laravel框架中,可以通過(guò)hasOne、hasMany、belongsTo、belongsToMany等方法來(lái)實(shí)現(xiàn)不同類型的關(guān)聯(lián)。下面是一個(gè)hasMany關(guān)聯(lián)的示例:

創(chuàng)建遷移文件

執(zhí)行以下命令來(lái)創(chuàng)建articles和comments表:

php artisan make:migration create_articles_table --create=articlesphp artisan make:migration create_comments_table --create=comments

編寫遷移代碼

打開(kāi)articles遷移文件,編寫創(chuàng)建articles表的代碼,如下所示:

public function up(){    Schema::create("articles", function (Blueprint $table) {        $table->id();        $table->string("title");        $table->text("content");        $table->timestamps();    });}

打開(kāi)comments遷移文件,編寫創(chuàng)建comments表的代碼,如下所示:

public function up(){    Schema::create("comments", function (Blueprint $table) {        $table->id();        $table->unsignedBigInteger("article_id");        $table->foreign("article_id")->references("id")->on("articles")->onDelete("cascade");        $table->text("content");        $table->timestamps();    });}

上述代碼創(chuàng)建了兩個(gè)表,一個(gè)是articles表,一個(gè)是comments表。comments表中有一個(gè)article_id字段,該字段是外鍵,指向articles表中的id字段。

定義模型關(guān)聯(lián)

在Laravel框架中,可以通過(guò)在模型中定義關(guān)聯(lián)來(lái)實(shí)現(xiàn)不同表之間的關(guān)聯(lián)。打開(kāi)Article模型,定義hasMany關(guān)聯(lián),如下所示:

class Article extends Model{    public function comments()    {        return $this->hasMany(Comment::class);    }}

在Comment模型中,定義belongsTo關(guān)聯(lián),如下所示:

class Comment extends Model{    public function article()    {        return $this->belongsTo(Article::class);    }}

上述代碼中,Article模型中的comments方法定義了hasMany關(guān)聯(lián),表示一個(gè)文章可以有多條評(píng)論;Comment模型中的article方法定義了belongsTo關(guān)聯(lián),表示一條評(píng)論屬于一個(gè)文章。

使用模型關(guān)聯(lián)

使用模型關(guān)聯(lián)可以方便地獲取關(guān)聯(lián)的數(shù)據(jù)。下面是一個(gè)獲取某篇文章的評(píng)論列表的示例:

$article = Article::find(1);$comments = $article->comments;

上述代碼中,首先獲取id為1的文章,然后通過(guò)$article->comments獲取該文章的評(píng)論列表。

標(biāo)簽:

精彩放送
房產(chǎn)
頭條