【问题标题】:Mysql and mongodb relationship in laravel 5.3laravel 5.3中mysql和mongodb的关系
【发布时间】:2017-03-11 15:45:52
【问题描述】:

我尝试在 laravel 5.3 上使用 mongodb 与 mysql 建立关系

首先我使用 mysql 连接创建了内容模型。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Content extends Model
{
    /**
     * The connection name for the model.
     *
     * @var string
     */
    protected $connection = 'mysql';

    /**
     *
     *      
     */
    public function category()
    {
        return $this->hasOne('App\Category', 'id', 'cid');
    }

    /**
     * 
     * 
     * 
     */
    public function tags()
    {
        return $this->hasMany('App\Tag', 'cid', 'id');
    }
}

然后我用 mongodb 创建了标签模型。

<?php

namespace App;

use Jenssegers\Mongodb\Eloquent\Model;

class Tag extends Model
{
    /**
     * The connection name for the model.
     *
     * @var string
     */
    protected $connection = 'mongodb';
    protected $collection = 'tags';

    /**
     * Fillable fields
     *
     * @var array
     */
    protected $guarded = ['_id'];

    /**
     *
     *      
     */
    public function content()
    {
        return $this->belongsTo('App\Content', 'id', 'cid');
    }
}

到目前为止一切正常,但是当我尝试获取数据时,谁会变空。

$contents = Content::with('category')->with('tags')->get();

        dd($contents[0]->tags);

【问题讨论】:

  • 您正试图将两个数据库引擎合二为一。我无法想象这将如何运作。

标签: mysql mongodb laravel


【解决方案1】:

根据https://moloquent.github.io/master/relations/#mysql-relations 的 Moloquent 文档,您需要在您的 sql 模型 (App\Content) 中添加 use Moloquent\Eloquent\HybridRelations 特征。

【讨论】:

    猜你喜欢
    • 2019-02-22
    • 2014-08-04
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2017-05-13
    • 2017-04-28
    • 2017-05-19
    相关资源
    最近更新 更多