У меня есть кампания с 3 комментариями,
У меня рабочие отношения, потому что $campaign = Campaign::first(); $campaign->comments
возвращает 3 комментария.
Проблема:
Campaign::has('comments')->get();
возвращаетничего, когда он должен вернуть кампанию;
Campaign::doesntHave('comments');
возвращает кампанию, когда он не должен возвращать ничего
И самое странное из всех:
Campaign::doesntHave('comments')->with('comments')->get();
возвращаеткампании, когда он ничего не должен возвращать и возвращает его с переменными комментариями со всеми тремя из них.
Кажется, что не может работать, и dosentHave работает.
Модель кампании:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class Campaign extends Eloquent {
protected $connection = 'mongodb';
protected $collection = 'campaign';
public function comments(){
return $this->hasMany('App\CampaignComments', 'campaignsid', 'sidcampaign');
}
}
CampaignComments Модель:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class CampaignComments extends Eloquent {
protected $connection = 'mongodb';
protected $collection = 'campaign_comments';
public function campaign(){
return $this->belongsTo('App\Campaign', 'sidcampaign', 'campaignsid');
}
}
Примечания: я использую laravel 5.5, mongodb 3.6 и php 7.2