Laravel Vuejs 实战:开发知乎 (9)定义话题与问题关系
2021-04-14 07:26
标签:color unsigned etop this func ati 官方文档 href 话题 1.话题【Topic】 执行命令: 修改****_**_**_create_topics_table.php数据库迁移文件如下: 修改Topic.php文件如下: 2.处理话题与问题之间的关联关系【多对多】 单独建一个数据库迁移文件存储话题与问题之间的关系; 创建这个数据库迁移文件,执行命令: 修改 ****_create_questions_topics_table.php数据库迁移文件: 执行命令建数据表: 3.定义模型Model之间的关联关系: 具体原理及更多介绍看官方文档:模型关联 也有英文版的样例介绍: larashout网站的: laravel-eloquent itsolutionstuff网站的: Laravel One to One Eloquent Relationship Tutorial Laravel One to Many Eloquent Relationship Tutorial Laravel Many to Many Eloquent Relationship Tutorial Laravel Has Many Through Eloquent Relationship Tutorial Laravel One to Many Polymorphic Relationship Tutorial Laravel Many to Many Polymorphic Relationship Tutorial 修改Topic.php文件: 修改Question.php文件: 话题与问题关系建立完成。 Laravel Vuejs 实战:开发知乎 (9)定义话题与问题关系 标签:color unsigned etop this func ati 官方文档 href 话题 原文地址:https://www.cnblogs.com/dzkjz/p/12376741.html 1 php artisan make:model Topic –cmr
1 class CreateTopicsTable extends Migration
2 {
3 /**
4 * Run the migrations.
5 *
6 * @return void
7 */
8 public function up()
9 {
10 Schema::create(‘topics‘, function (Blueprint $table) {
11 $table->bigIncrements(‘id‘);
12 $table->string(‘name‘);
13 $table->text(‘content‘)->nullable();
14 $table->integer(‘questions_count‘)->default(0);
15 $table->integer(‘followers_count‘)->default(0);
16 $table->timestamps();
17 });
18 }
19
20 /**
21 * Reverse the migrations.
22 *
23 * @return void
24 */
25 public function down()
26 {
27 Schema::dropIfExists(‘topics‘);
28 }
29 }
30
1 class Topic extends Model
2 {
3 //
4 protected $fillable = [‘name‘, ‘questions_count‘];
5
6 }
7
1 php artisan make:migration create_questions_topics_table --create=questions_topics
1 class CreateQuestionsTopicsTable extends Migration
2 {
3 /**
4 * Run the migrations.
5 *
6 * @return void
7 */
8 public function up()
9 {
10 Schema::create(‘questions_topics‘, function (Blueprint $table) {
11 $table->bigIncrements(‘id‘);
12 $table->bigInteger(‘question_id‘)->unsigned()->index();
13 $table->bigInteger(‘topic_id‘)->unsigned()->index();
14 $table->timestamps();
15 });
16 }
17
18 /**
19 * Reverse the migrations.
20 *
21 * @return void
22 */
23 public function down()
24 {
25 Schema::dropIfExists(‘questions_topics‘);
26 }
27 }
28
1 php artisan migrate
1 class Topic extends Model
2 {
3 //
4 protected $fillable = [‘name‘, ‘questions_count‘];
5
6
7 public function questions()
8 {
9 return $this->belongsToMany(
10 Question::class,
11 ‘questions_topics‘ //表名我设置的是questions_topics,可能不是系统自动解析的question_topic
12 )->withTimestamps();//withTimestamps操作questions_topics表中create_at及updated_at字段的;
13 }
14 }
15
1 class Question extends Model
2 {
3 //
4 protected $fillable = [‘title‘, ‘content‘, ‘user_id‘];
5
6 public function topics()
7 {
8 return $this->belongsToMany(
9 Topic::class,
10 ‘questions_topics‘ //表名我设置的是questions_topics,可能不是系统自动解析的question_topic
11 )->withTimestamps();//withTimestamps操作questions_topics表中create_at及updated_at字段的
12 }
13 }
14
上一篇:SCA-CNN: Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning
下一篇:npm安装Vue.js
文章标题:Laravel Vuejs 实战:开发知乎 (9)定义话题与问题关系
文章链接:http://soscw.com/index.php/essay/75557.html