【问题标题】:Get data in controller ( laravel ) from mongodb model and pass it to view从 mongodb 模型中获取控制器( laravel )中的数据并将其传递给视图
【发布时间】:2021-08-28 12:01:11
【问题描述】:

我使用 jeremykenedy/laravel-auth
用户存储在 postgres 中。 Position_info 存储在 mongo 中。 需要使用 user_id == $user->getAttribute('id') 从 mongo 获取文档 在控制器中(UsersManagementController.php)

    ...
public function show(User $user)
{
    $position = Position_info::where('user_id', $user->getAttribute('id'));
    echo '<pre>';
    echo 'The Position ID is: '. $position->_id;
    echo '</pre>';
    return view('usersmanagement.show-user', compact('user'))->with('position', $position);;
}
    ...

位置信息.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class Position_info extends Eloquent
{
    protected $connection = 'mongodb';
    protected $collection = 'position_infos';

    protected $fillable = [
        'user_id', 'position', 'experience', 'additional_info'
    ];
}

从那里出发的路线
https://github.com/jeremykenedy/laravel-auth/blob/master/routes/web.php

视图上显示的内容

error: Property [_id] does not exist on the Eloquent builder instance.

【问题讨论】:

  • 你是直接使用 eloquent 吗,因为我猜 eloquent 不支持 no-sql dbs
  • position_info 使用 Jenssegers\Mongodb\Eloquent\Model 作为 Eloquent 创建
  • 在您的问题中写下更多详细信息,例如您正在使用所需输出的完整技术堆栈和当前状态
  • 不需要-&gt;get()吗? Position_info::where('user_id', $user-&gt;getAttribute('id'))-&gt;get(); ?

标签: laravel mongodb


【解决方案1】:

试试这个。

$position = Position_info::where('user_id', $user->getAttribute('id'))->get()->toArray();

然后要获取 _id 使用这个:

echo 'The Position ID is: '. $position[0]['_id'];

【讨论】:

  • 我还没有完全解释清楚。用户存储在 postgres 中。 Position_info 存储在 mongo 中。需要使用 user_id = $ user-> getAttribute('_id') 从 mongo 获取文档
  • @ErikMark 使用这个:$position = Position_info::where('user_id', $user-&gt;getAttribute('id'))-&gt;get()-&gt;toArray(); 然后获取 _id 使用这个echo $position[0]['_id'];
猜你喜欢
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
  • 2017-09-15
  • 1970-01-01
相关资源
最近更新 更多