У меня есть создатель имени столбца в таблице, где хранится идентификатор пользователя. При извлечении записей я использую отношение относится к. Я получаю данные, но не могу их отобразить.
Примечание: Эта тема не решает мою проблему
Схема таблицы категорий
Schema::create('categories', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name')->unique();
$table->string('slug')->unique();
$table->string('banner')->nullable();
$table->boolean('status')->default(false);
$table->bigInteger('creator');
$table->bigInteger('moderator');
$table->timestamps();
});
схема таблицы пользователя
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
Категория Модель:
public function creator(){
return $this->hasOne(User::class, 'id', 'creator')->select('id', 'name');
}
Код контроллера категории:
$records = Category::with(['creator'])->paginate(env('REC_LIMIT'));
данные, которые я получаю:
"data":[{"id":1,"name":"Uncategorized","slug":"uncategorized","banner":null,"status":1,"creator":{"id":1,"name":"demon slayer"},"moderator":1,"created_at":"2019-11-03 12:08:33","updated_at":"2019-11-04 11:11:01"},
обратите внимание, что если в запросе удалено предложение with, я получу:
"data":[{"id":1,"name":"Uncategorized","slug":"uncategorized","banner":null,"status":1,"creator":1,"moderator":1,"created_at":"2019-11-03 12:08:33","updated_at":"2019-11-04 11:11:01"},
в блейд-файле, и я делаю ниже код для печати имени пользователя создателя вместо его идентификатора записи.
$record->creator->name
//or
$record->creator[0]->name
В настоящее время я получаю это:
Facade\Ignition\Exceptions\ViewException
Trying to get property 'name' of non-object (View: /Users/dragonar/Dev/pdp/resources/views/backend/category/index.blade.php)