您好,我想获得我的答复表上的用户名,但它只显示我的用户id,当我键入$REPLY-&>USER_ID-&>NAME时,它显示错误:"try 读取属性"NAME"on int".

我怎么才能修好它呢?

以下是我的代码:

100

public function replies() {

    return $this->hasMany(Reply::class);
    
}

100

 public function tickets() {

        return $this->belongsTo(Tickets::class);
    }

100

 public function show($id) {


       $user = Auth::user();
       
        $tickets = Tickets::with('companies')->get();

        $ticketscomp = Companies::with('tickets')->get();

        $severities = Severities::with('tickets')->get();

        $users = User::with('tickets')->get();

        //$replies = DB::table('replies')->where('ticket_id', $id)->get();

        
        // $articles = Reply::where('user_id', $id)->with('User')->get();

    
       $ticketspage = Tickets::with('severities')->with('companies')->with('user')->with('replies')->findOrFail($id);
 
      
        return view('tickets.ticket', compact('ticketspage'))->
        with(['tickets'=> $tickets])->
        with(['ticketscomp'=>$ticketscomp])->
        with(['severities'=>$severities])->
        with(['ticketspage'=>$ticketspage])->
        with(['replies'=>$replies]);
 
         //dd($reply_author->toArray());
        
    }

100

  @foreach ($replies as $reply)

            <div class="NjBSH">
                <div id="AuthorAndDate-1">
                    
                    <span class="author">{{ $reply->user_id->name }}</span>
                    
                    <span class="date"><span style="color: rgb(32, 33, 36);">{{ $reply->created_at }}</span><br></span>
                </div>
                <div class="kmSodw">
                    <span>{{ $reply->text }}</span>
                </div>
            </div>
        
        @endforeach 

在中创建的文本,还会显示$REPLY-&>USER_ID,但不会显示此$REPLY-&>USER_ID-&>名称.

推荐答案

以下是使用Eloquent的完整解决方案:

Ticket Model

public function replies() {
    return $this->hasMany(Reply::class);    
}

Reply Model

public function ticket() {
    return $this->belongsTo(Ticket::class);
}

public function user() {
    return $this->belongsTo(User::class);
}

Tickets Controller:

public function show(Ticket $ticket) {  
    //Load all of the ticket relationships that we will be using
    $ticket->load('replies.articles', 'replies.user', 'companies', 'severities');
    
    //Assign the loaded ticket companies
    $companies = $ticket->companies;
    
    //Assign the loaded ticket severities
    $severities = $ticket->severities;
    
    //Assign the loaded ticket replies
    $replies = $ticket->replies;
    
    /* 
        You can acess the replies -> articles && user in a foreach loop, in php or blade    
        foreach($replies->articles as $article){
           //$article->id   
        }
    */  
    
    return view('tickets.ticket', compact('ticket', 'companies', 'severities', 'replies'));
 }
    

Blade

@foreach ($replies as $reply)
    <div class="NjBSH">
        <div id="AuthorAndDate-1">
            <span class="author">{{ $reply->user->name }}</span>
            <span class="date"><span style="color: rgb(32, 33, 36);">{{ $reply->created_at }}</span><br></span>
        </div>
        
        <div class="kmSodw">
            <span>{{ $reply->text }}</span>
        </div>
    </div>
@endforeach 

Laravel相关问答推荐

Laravel将变量从模板到已发布的供应商模板

在没有lang/*.json文件的情况下在Laravel项目中实现多语言支持

自定义验证在表单请求上始终返回 true laravel

在 blade laravel 中以格式编号显示长数字

如何在 Laravel 9 中获取带分页的订单列表?

LARVAL SAVE 中的关系有

如何在 Laravel 中填充以后执行的条件

Laravel Livewire 组件在刷新后不会自动刷新/重新加载

Eloquent/Laravel:是否有 object->load('relation') 的对应物,例如.object->unload('relation')?

处理程序类中的错误 - Laravel

调用未定义函数 Illuminate\Encryption\openssl_decrypt()

磁盘 [视频] 没有配置的驱动程序

如何修复无效请求(不支持的 SSL 请求)

laravel:如何在 Eloquent Query 中使用 LOWERCASE 函数?

Laravel 5 - Php artisan语法错误

导入文件时如何跳过第一行

如何将 Facebook PHP SDK 与 Laravel 5.4 集成?

Laravel Mix 生成字体到另一个目录

升级到 laravel 5.3 后错误 datetime format: 1292 Incorrect datetime value: '0000-00-00 00:00:00'

将参数传递给 Laravel 中的中间件