У меня есть две таблицы в db, одна из них называется users
, которая просто содержит информацию о пользователе веб-сайта, а другая - tags
, которая содержит некоторые хэштеги, которые пользователи могут выбирать из них.
Я также создал таблицу с именем tag_user
, в которой могут храниться tag_id
и user_id
, как это изображение:
(точно так же, как Stackoverflow, пользователь может выбрать несколько тегов, таких как php, javascript и т. д.)
Итак, чтобы установить связь между этими двумя, я добавил это в модель User
:
public function tags()
{
return $this->belongsToMany(User::class);
}
А также это для модели Tag
:
public function users()
{
return $this->belongsToMany(Tag::class);
}
А вот опция выбора на блейд-сервере, и пользователи могут выбрать несколько тегов из базы данных:
<select class="form-control BSinaBold" name="skills[]" id="skills" multiple>
@foreach(\App\Models\Tag::all() as $tag)
<option value="{{ $tag->id }}" {{ in_array($tag->id , Auth::user()->tags->pluck('id')->toArray()) ? 'selected' : '' }}>{{ $tag->name }}</option>
@endforeach
</select>
Теперь, как только я загружаю лезвие, я получаю это как ошибку:
SQLSTATE [42S02]: базовая таблица или представление не найдены: 1146 Таблица 'dbname.user_user' не существует (SQL: выберите _11 _. *, _12 _._ 13_ как pivot_user_id
из users
внутреннего соединения user_user
на _17 _._ 18_ = user_user
.user_id
, где _21 _._ 22_ = 4)
Так что здесь не так? Как я могу исправить эту проблему?
Я был бы очень признателен за любую идею или предложение от вас, ребята ...
А вот и миграция таблицы tags
& tag_user
:
public function up()
{
Schema::create('tags', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('label');
$table->timestamps();
});
Schema::create('tag_user', function (Blueprint $table) {
$table->unsignedBigInteger('tag_id');
$table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->primary(['tag_id','user_id']);
});
}
Заранее спасибо.