Laravel 中 morphs 列类型有什么用?

Ben*_*son 4 php mysql laravel-5

$table->morphs 列类型可以存储什么类型的数据?

$table->morphs('taggable');
Run Code Online (Sandbox Code Playgroud)

我不完全理解这里给出的解释。

添加 taggable_id UNSIGNED BIGINT 和 taggable_type VARCHAR 等效列。

提前致谢。

cat*_*con 8

$table->morphs('column_name')是一个快捷方式,它将创建 2 列:

column_name_id具有无符号整数数据类型和

column_name_type使用字符串数据类型创建多态关系

所以

$table->morphs('taggable');
Run Code Online (Sandbox Code Playgroud)

是相同的:

$table->unsignedInteger("taggable_id");
$table->string("taggable_type");
Run Code Online (Sandbox Code Playgroud)