gpt4 book ai didi

php - 未定义的属性:App\User::$login 使用 Jenssegers\Mongodb

转载 作者:可可西里 更新时间:2023-11-01 10:45:22 26 4
gpt4 key购买 nike

我在使用 Laravel 5.5Jenssegers\Mongodb 关联两个 时遇到了麻烦。

这是我的用户:

<?php
namespace App;

use App\Login;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class Usuario extends Eloquent
{
protected $connection = 'mongodb';
protected $collection = 'user';

protected $fillable = [
'name', 'nickname', 'date_birth', 'gender', 'login',
];

public function login(){
return $this->belongsTo(Login::class, 'login');
}

}

这是我的登录:

<?php
namespace App;

use App\User;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class Login extends Eloquent
{
protected $connection = 'mongodb';
protected $collection = 'login';

protected $fillable = [
'email', 'password',
];

protected $hidden = [
'password',
];

public function user(){
return $this->hasOne(User::class, 'login');
}
}

在 UserController 上,我这样定义索引方法:

public function index()
{
try {

$user= User::with('login')->get();

return response()->json(['users' => $user], 200);

} catch(Exception $e) {
throw new Exception($e);
}
}

当我POST 一个登录到存储方法 的用户时,它运行良好。但是,当我调用 GET 时,我收到了这条消息:

ErrorException (E_NOTICE) Undefined property: App\User::$login

laravel.log 上,它有:

[2018-12-12 13:05:42] local.ERROR: Undefined property: App\User::$login {"exception":"[object] (ErrorException(code: 0): Undefined property: App\User::$login at [project-path]\vendor\jenssegers\mongodb\src\Jenssegers\Mongodb\Relations\BelongsTo.php:28) [stacktrace]

我已经试过了

use Jenssegers\Mongodb\Relations\BelongsTo;
use Jenssegers\Mongodb\Relations\HasOne;
use Jenssegers\Mongodb\Relations\HasMany;

在每个 class 的顶部,但是它也不起作用。

当我在 controller 上调用 User::all(); 时,我得到了 ID 为 login object 的用户:

{
"users": [
{
"_id": "5c10ed8bc557ab2ed0007034",
"name": "test user",
"login": "5c10ed8bc557ab2ed0007033",
//other fields
}
]
}

但我想这样得到它:

{
"users": [
{
"_id": "5c10ed8bc557ab2ed0007034",
"name": "test user",
"login": {
"_id": "5c10ed8bc557ab2ed0007033",
"email": "some@email",
"password": "somepwd"
},
//other fields
}
]
}

我认为这是 Jenssegers\Mongodb 的问题,因为我在 MySQL 数据库 上使用了这个项目,现在我正在将它迁移到 MongoDB

最佳答案

controller 中,我分别操作了两个 classes,如下所示:

public function index()
{
try {

$users = User::all();

$userslogin = array();
foreach ($users as $usr) {
$login = Login::find($usr)->first();
$usr->login = $login;
$userslogin[] = $usr;
}

return response()->json(['usuario' => $usuarios], 200);

} catch(Exception $e) {
throw new Exception($e);
}
}

如果有人有其他解决方案,我将不胜感激。

关于php - 未定义的属性:App\User::$login 使用 Jenssegers\Mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53744163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com