gpt4 book ai didi

php - 我应该如何在 Laravel 中为新类别创建第三个表

转载 作者:行者123 更新时间:2023-11-29 15:33:55 25 4
gpt4 key购买 nike

我正在开发一个练习项目,其中有两张 table 。包含标题和文本的文章表以及用户表。现在我想要一个管理员(我之前在数据库中创建的)来创建其他文章类别。有谁知道我现在如何链接我的表格或模型?我现在才使用 Laravel 一周,还没有完全了解它。

那是我的 table :

public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('heading',80);
$table->string('clubchoose')->default('DEFAULT');
$table->text('text');
$table->timestamps();
$table->unsignedInteger('author')->nullable();
$table->foreign('author')->references('id')->on('users');
$table->string('image')->nullable();
});
}
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->Increments('id');
$table->boolean('isAdmin')->default(false);
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}

最佳答案

因此,为了实现这一目标,您首先需要创建类别模型/ Controller /表:

php artisan make:model Category -m //-m flag creates migration automatically

php artisan make:controller CategoryController --reosource //--resource flag creates a CRUD controller.

之后,在类别表中添加列article_id(以及您想要的其他字段):

public function up()
{
Schema::table('categories', function (Blueprint $table) {
// ...
$table->integer('article_id')->nullable();
});
}

之后,您需要通过添加category_id 列来更改您的文章表。为此,请创建一个新的迁移以仅添加一列:

php artisan make:migration add_category_id_to_articles_table --table==articles

在该迁移中,添加以下内容:

public function up()
{
Schema::table('articles', function (Blueprint $table) {
$table->integer('category_id')->nullable();
});
}

现在您已经设置了迁移,您需要设置关系。在您的文章模型中,添加以下关系:

public function category(){
return $this->belongsTo('App\Category');
}

因此一篇文章将属于类别。对于类别,因为它们将包含多篇文章,所以添加以下关系:

public function articles(){
return $this->hasMany('App\Article');
}

现在,一切都已设置完毕。运行迁移,添加一些类别并进行测试。如果您有任何错误或问题,请告诉我。

编辑:

如果您只希望管理员添加新类别,您可以创建一个仅对管理员可见的按钮。像这样的事情:

@if(Auth->user()->role == 'admin'){
//show button
@endif

关于php - 我应该如何在 Laravel 中为新类别创建第三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58445104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com