У меня есть создатель имени столбца в таблице, в которой хранится идентификатор пользователя. При извлечении записей я использую отношение принадлежности. Я получаю данные, но не могу их отобразить.
Примечание. Эта ветка не решает мою проблему
Схема таблицы категорий
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)
$record->creator
всегда будет «полем» из таблицы, а не отношения в этом случае... нужно лучше называть ваши внешние ключи - person lagbox   schedule 04.11.2019