Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 4 » Проверка на существование записей в связующей таблице » 22.04.2014 15:00:25

@if ($book->translators)
   @foreach($book->translators as $translator)
        {{ $translator->name }}
    @endforeach
@endif

#2 Re: Laravel 4 » Eloquent ORM Models self relations » 18.04.2014 17:11:57

То есть у него свой билдер, свои клас колекций и т.п.
Без этого никак?
Уж очень иного переделывает он во фреймворке своим расширение, потом проблемы с обновлением будут...

#3 Laravel 4 » Eloquent ORM Models self relations » 18.04.2014 15:42:47

Ellrion
Ответов: 4

Кто сталкивался с проблемой связи модели самой с собой?
В простейшем случае если есть нечто вроде:

class Item
extends Eloquent
{
    public $timestamps = false;

    public function parent()
    {
        return $this->belongsTo('Item', 'parent_id');
    }

    public function childes()
    {
        return $this->hasMany('Item', 'parent_id');
    }

}

соответственно в таблице items id, label..., parent_id
Так вот при использовании Item::has('parent') или Item::has('childes') Получаем всегда пустой результат, так как запрос который делает система будет иметь вид

select * from `items` 
where (select count(*) from `items` where `items`.`parent_id` = `items`.`id`) >= 1

Так как нет альяса в подзапросе то мы и получаем пустой список

Кто сталкивался и нашел решение проблемы?
ЗЫ Интересно что Тайлер сделал для связи BelongsToMany решение (какое то костыльное) смотрите метод getRelationCountQuery в Illuminate\Database\Eloquent\Relations\BelongsToMany. Почему такого нет в других связях я не очень то понял

Подвал раздела