Laravel 关系无效:getConnectionName() 错误

Laravel relationship not working: getConnectionName() Error

我有两个 tables usersuser_details。我已将 users table 链接为

public function userDetails()
{
    return $this->hasOne('App\Repositories\Models\UserDetails', 'id', 'user_id');
}

并链接 user_details table 为

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

虽然从 UserController 访问用户数据的详细信息,但如果我尝试访问数据

return $this->user->with('userDetails')->get();

我收到此类错误

FatalErrorException in HasRelationships.php line 488: Call to undefined method

App\Repositories\Models\UserDetails::getConnectionName()

有什么问题吗?

确保 UserDetails class 扩展 Model class:

use Illuminate\Database\Eloquent\Model;

class UserDetails extends Model

您也可以像这样清理代码。拥有整洁的代码将使您的代码更有价值,其他开发人员也更容易理解,或者您以后回头看代码时更容易记住。

use Illuminate\Database\Eloquent\Model;
use App\Repository\Models\User;
use App\Repository\Models\UserDetails;

public function user()
{
    return $this->belongsTo('User');
}
public function userDetails()
{
    return $this->hasOne('UserDetails', 'id', 'user_id');
}