Laravel关系更改表列会产生未定义的属性

TrO*_*nNe 5 php mysql laravel

所以我在Laravel应用程序中更改了一个列的名称,并开始派对.

更改是从name_id到seller_id

在查看之前:

$transaction->user->first_name
Run Code Online (Sandbox Code Playgroud)

之前在控制器交易中:

class Transaction extends Model
{
    public function user(){
        return $this->belongsTo('App\User');
    }
 }
Run Code Online (Sandbox Code Playgroud)

在控制器调用视图之前和之后:

public function getInfoUser($name){

   $user = User::where('register_id', $name)->where('id', auth()->user()->id)->first();

   if($user){
   return view('users.user', compact('user'));
   }
}
Run Code Online (Sandbox Code Playgroud)

在视野中:

$transaction->seller->first_name
Run Code Online (Sandbox Code Playgroud)

在控制器事务之后:

class Transaction extends Model
{
    protected $primaryKey = 'seller_id';

    public function user(){
        return $this->belongsTo('App\User');
    }
}
Run Code Online (Sandbox Code Playgroud)

退货后:

Trying to get property of non-object (View: /Users/tronne/Documents/web/resources/views/users/user.blade.php) in c7128907204dffe6676c7d88cbbc47.php (line 108) 
at CompilerEngine->handleViewException(object(ErrorException), 0) in
PhpEngine.php (line 45)
at PhpEngine-evaluatePath('/Users/tronne/Documents/web/storage/framework/views/c7128907204dffe6676c7d88cbbc47.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'user' => object(User)))
in CompilerEngine.php (line 59)
at CompilerEngine-get('/Users/tronne/Documents/web/resources/views/users/user.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'user' => object(User)))
in View.php (line 137)
Run Code Online (Sandbox Code Playgroud)

作为参考,表用户具有标准列名"user_id"和"first_name",并且表事务(事务控制器)现在具有"seller_id"

不确定它是否会影响,但在SQL表中,主键在两种情况下都是"id"自动增量

我做错了什么?

Sap*_*aik 1

user您的模型中有一种关系Transaction,但您试图按照您的观点访问它seller

改变:

$transaction->seller->first_name
Run Code Online (Sandbox Code Playgroud)

到:

$transaction->user->first_name
Run Code Online (Sandbox Code Playgroud)

或者

您还可以将模型中的关系更改为seller. 如果那是你需要的。

最后:

仅当关系中有记录时才在视图中显示数据。

@if(!empty($transaction->user))
        $transaction->user->first_name
@else
        //No users
@endif
Run Code Online (Sandbox Code Playgroud)