【发布时间】:2020-11-26 21:23:02
【问题描述】:
我正在尝试使用 jenssegers/mongodb 库在 Lumen 中建立 hasOne / hasMany 关系,但这对我不起作用,我确实尝试了以下选项:
return $this->hasMany(Token::class,'_id.toString()','token.toString()');return $this->hasMany(Token::class,'_id','token');- 当我在方法中使用原始查询时,它对我有用
- 当我插入数据时,我将外部字段保存为
new ObtjectID
这是用户模型:
<?php
namespace App\Models;
use Jenssegers\Mongodb\Eloquent\Model;
use MongoDB\BSON\ObjectID;
class Usuario extends Model
{
//Tabla seleccionada
protected $table = 'usuario';
//Campos de la tabla
protected $fillable = [
'_id',
'usuario',
'token',
];
//Llave primaria
protected $primaryKey = '_id';
//Relaciones
public function token()
{
return $this->hasMany(Token::class, 'usuario','_id');
}
}
这是代币模型:
<?php
namespace App\Models;
use Jenssegers\Mongodb\Eloquent\Model;
class Token extends Model
{
//Tabla seleccionada
protected $table = 'token';
//Campos de la tabla
protected $fillable = [
'_id',
'nombre',
'usuario',
'token',
'fecha',
];
//Llave primaria
protected $primaryKey = '_id';
//Relaciones
public function usuario()
{
return $this->belongsTo(Usuario::class,"_id","usuario");
}
}
这就是方法:
$result = Usuario::with('token')->where('eliminado', 0)->get();
if ($result->count() > 0) {
return response() -> json(
array('data' => $result, 'message' => config('constants.messages.3.message')),
config('constants.messages.3.code')
);
}else{
return response() -> json(
array('data' => $result, 'message' => config('constants.messages.4.message')),
config('constants.messages.4.code')
);
}
感谢阅读
【问题讨论】:
-
"Doesn't work for me" 并没有真正告诉我们任何事情,您遇到了什么错误?
-
嗨 Remul,它返回空数组
-
请分享您的代码、模型、控制器
-
嗨@OMR 我现在更新了问题
标签: laravel mongodb relationship lumen