Я пытаюсь создать отношение hasOne / hasMany в Lumen, используя jenssegers / mongodb библиотеку, но у меня это не работает, я пробовал следующие варианты:
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')
);
}
Спасибо, что прочитали меня