Введите имя вместо идентификатора пользователя

У меня 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. Надеюсь, это сработает для вас.

Другие вопросы по тегам