Введите имя вместо идентификатора пользователя
У меня 2 стола.
имя первой таблицы - пользователь.
User_id, User_name
Имя второй таблицы - вопрос
Question_id, Question, User_id
Я хочу видеть имя пользователя при вызове таблицы вопросов.
код подключения таблицы:
public function user()
{
return $this->belongsTo(User::class);
}
И код ресурса:
public function toArray($request)
{
return[
'Question' => $this->Question,
'created_at' => $this->created_at->diffForHumans(),
'user' => $this->user->name
];
}
Функция отображения контроллера вопроса:
public function show(Question $question)
{
return new QuestionResource($question);
}
Ошибка при работе в следующем коде:
{
"message": "Class 'App\\Model\\User' not found",
"exception": "Symfony\\Component\\Debug\\Exception\\FatalThrowableError",
"file": "C:\\xampp\\htdocs\\forumapp\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Concerns\\HasRelationships.php",
"line": 718,
"trace": [
{
"file": "C:\\xampp\\htdocs\\forumapp\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Concerns\\HasRelationships.php",
"line": 179,
"function": "newRelatedInstance",
"class": "Illuminate\\Database\\Eloquent\\Model",
"type": "->"
},
1 ответ
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $table = 'user';
}
Создайте класс модели Elquoent, потому что вы использовали return $this-> ownTo(User::class); Класс пользователя здесь для определения отношения elquoent. Надеюсь, это сработает для вас.