0

我有 2 个表,他们有一对多的关系,我想在刀片中获取所有客户信息和名称用户

它是用户模型

 public function FirstClients(){

        return $this->hasMany("App\Models\FirstClient");
    }

它是客户端模型

 public function User(){
        return $this->belongsTo('App\Models\User');
    }

它是控制器

   $allclients= DB::table('first_clients')->get();

        return view('admin.client.allclients' , compact('allclients'));

这是刀片

@foreach ($allclients as $client)
                        <tr>
                            <td>{{ $client->user->name}}</td>
                        <tr/>
@endforeach

我有这个错误

未定义的属性:stdClass::$user

4

2 回答 2

0

您必须使用first_clients类来获取模型对象客户端中的数据表示,例如

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

    class FirstClient extends Model
    {
        /**
         * The table associated with the model.
         *
         * @var string
         */
        protected $table = 'first_clients';
    
    
        public function user(){
            return $this->belongsTo('App\Models\User');
        }
    
    
    }

在您的控制器中

$allclients = FisrstClient::all();

return view('admin.client.allclients', compact('allclients'));
于 2021-04-30T06:19:23.830 回答
0

您使用的方法名称区分大小写。尝试对模型中的关系使用 camelCase 现在您必须将方法名称更改为user()

客户模型

public function user() {
  return $this->belongsTo('App\Models\User');
}

刀片视图

@foreach ($allclients as $client)
  <tr>
    <td>{{ $client->user->name}}</td>
  <tr/>
@endforeach

控制器
你需要使用 eloquent 来使用关系。

$allclients= FirstClient::with('user')->get();

return view('admin.client.allclients' , compact('allclients'));
于 2021-04-30T07:52:30.177 回答