我已经搜索了遇到此错误的人员,但仍然找不到解决方案。
我一直遇到错误:
“ SQLSTATE [42S22]:找不到列:1054'字段列表'中的未知列'material_tags.material_uuid'(SQL:选择
tags
。*,material_tags
。material_uuid
为pivot_material_uuid
,material_tags
。tag_uuid
作为{{1}的pivot_tag_uuid
,来自tags
上的material_tags
内部联接tags
。uuid
= { {1}}。material_tags
,其中(05a36470-d0a0-11e7-91b4-ff3d7d9f961a)中的tag_uuid
。material_tags
和material_uuid
。tags
为空)”
如果我必须查看材料05a36470-d0a0-11e7-91b4-ff3d7d9f961a,它应该看起来像这样
当我尝试运行位于控制器上的这段代码时:
deleted_at
我的材料模型具有以下内容:
public function show(Request $request, $id)
{
$material = Material::with('tags')->where(
'uuid',
$id
)->first();
所以我有一个Tag表,其中存储了所有标签,还有一个Materials表,其中存储了所有材料。我有Material_tags表,以查看哪些材料具有标签。
迁移时我的create_materials_table
public function tags()
{
return $this->belongsToMany('App\Models\Tag', 'material_tags');
}
我的create_tags_table迁移
public function up()
{
Schema::connection('materials')->create('materials', function (Blueprint $table) {
$table->uuid('uuid')
->primary();
$table->string('title');
$table->integer('viewing_time')
->default(15)
->comment('In seconds');
$table->text('description')
->nullable();
$table->uuid('organization_id')
->nullable();
$table->timestamps();
$table->softDeletes();
});
}
和我的create_material_tags_table迁移
public function up()
{
Schema::connection('materials')->create('tags', function (Blueprint $table) {
$table->uuid('uuid')
->primary();
$table->string('name')
->unique();
$table->timestamps();
$table->softDeletes();
});
}
答案 0 :(得分:1)
您必须指定自定义外键:
public function tags()
{
return $this->belongsToMany('App\Models\Tag', 'material_tags', 'material_id', 'tag_id');
}