2014-02-03 3 views
0

Здравствуйте РМКО работает Laravel и MongoDB App: У меня есть следующий сценарий: У меня есть комментарий и их хиты коллекции так: Hoots Model CollectionОтношения не работают в Laravel и MongoDB?

"_id": ObjectId("52ef89e9c6b93ca123f2fd37"), 
"user_id": "52df9ab5c6b93c8e2a8b4567", 
"hoot": "Hello Thius is Tewst", 
"updated_at": ISODate("2014-02-03T12:22:01.530Z"), 
"created_at": ISODate("2014-02-03T12:22:01.530Z") 

и его хитов Модель collecton как это:

"_id": ObjectId("52ef8d5ec6b93c6d24f2fd37"), 
"created_at": ISODate("2014-02-03T12:36:46.130Z"), 
"dip": NumberInt(1), 
"hits": NumberInt(0), 
"post_id": "52ef89e9c6b93ca123f2fd37", 
"updated_at": ISODate("2014-02-03T13:35:20.766Z") 

Так вот один комментарий т.е. гудок есть один сборник с описанием их как и антипатии

у меня есть модель Anem Hoots

<?php 

use Jenssegers\Mongodb\Model as Eloquent; 

class Hoots extends Eloquent { 

/** 
* The database table used by the model. 
* 
* @var string 
*/ 
protected $table = 'hoots'; 

public $timestamps = true; 

protected $fillable = array('user_id', 'hoot'); 

    public function gethit() 
{ 
    return $this->hasOne('Hitdip'); 
} 
} 

И модель Hitdip для своих хитов записей

<?php 
use Jenssegers\Mongodb\Model as Eloquent; 

class Hitdip extends Eloquent { 

/** 
* The database table used by the model. 
* 
* @var string 
*/ 
protected $table = 'hitdip'; 

public $timestamps = true; 

protected $fillable = array('post_id','hits', 'dip' ,'type'); 

    public function gethoot() 
{ 
    return $this->BelongsTo('Hoots'); 
} 

}

Но когда я пытаюсь получить гудок, и ударил записи, связанные с ними, я получаю сообщение об ошибке

Hoots::where('user_id',$user_id)->gethit; 

Просьба рассмотреть? Ошибка

Undefined property: Jenssegers\Mongodb\Eloquent\Builder::$gethit (View: /var/www/hututoo/app/views/profile/profile_connect/profile.blade.php) (View: /var/www/hututoo/app/views/profile/profile_connect/profile.blade.php) 
+0

И ошибка ..? Или мы должны угадать сами? –

+0

@u_mulder извините за половину информации. Обзор Вопрос снова Я обновил ошибку –

+0

'gethit' is property,' gethit() 'is function. –

ответ

2

В одно к одному отношения вещи просты. выше отношения определены правильно. Но нам нужно принести вещи в этом формате

Hoots::with('gethit')->find(id)->get(); 
Hoots::with('gethit')->where('user_id',$user_id)->get(); 
+0

У меня такая же проблема, но с одной до многих ... не может показаться, чтобы понять это ... пожалуйста, помогите – Haseeb

+0

@Raiden Где проблема? –

+0

Я использую отношение один-много, и когда я делаю что-то вроде '$ subcategories = $ categories-> subcategories() -> get()' где категории имеют много подкатегорий. Он дает мне ошибку «неопределенные методы подкатегорий», и у меня есть метод подкатегорий в модели категорий, которая имеет отношение hasMany («SubcategoriesModel»). И подкатегорииModel имеет 'ownTo (" КатегорииModel ")' также – Haseeb

0

Некоторые называют Класс время не лечит, как объект, так что вам придется пройти непосредственно в функции.

Вы должны изменили функцию gethit и gethoot и вам нужно передать объект класса пример:

public function gethit(){ 
    return $this->hasOne(new gethit(),'Hoots','post_id','_id'); 
} 

То же, что для gethoot

public function gethoot(){ 
    return $this->BelongsTo(new Hoots()); 
} 

В одной до многих отношениях, как Hoots есть много post. Таким образом, вы можете позвонить по телефону

$posts = Hoots::with('gethit')->where('user_id','52df9ab5c6b93c8e2a8b4567')->get(); 
Смежные вопросы