Laravel по-русски

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

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

#1 22.04.2014 11:57:56

Проверка на существование записей в связующей таблице

Добрый день. Есть две модели Book и Translator, связанные друг с другом отношением ManyToMany. Так как у книги не всегда есть переводчик (переводчики), то при выводе информации о книге нужно проверить есть ли они у книги или нет, чтобы не выводить пустую строку "Переводчики". Как это сделать в представлении? Код вывода такой:

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

Не в сети

#2 22.04.2014 15:00:25

Re: Проверка на существование записей в связующей таблице

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

Не в сети

#3 22.04.2014 17:06:19

Re: Проверка на существование записей в связующей таблице

Ellrion пишет:
@if ($book->translators)
   @foreach($book->translators as $translator)
        {{ $translator->name }}
    @endforeach
@endif

пробовал так, но не помогло...

Не в сети

#4 22.04.2014 17:46:57

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: Проверка на существование записей в связующей таблице

Попробуйте сделать одним из способов из этой темы

Не в сети

#5 22.04.2014 18:03:08

Re: Проверка на существование записей в связующей таблице

Cheshirrski пишет:

}%Попробуйте сделать одним из способов из ((http://laravel.ru/forum/viewtopic.php?id=226 этой темы))

Попробовал, не то sad Сам не понимаю почему...

Не в сети

#6 22.04.2014 18:43:10

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: Проверка на существование записей в связующей таблице

Сделайте PHP{{ dd$book->translators ) }}, посмотрите что там лежит в случае когда нет переводчика и делайте проверку на это условие

Не в сети

#7 23.04.2014 22:08:56

Re: Проверка на существование записей в связующей таблице

Мистика какая-то.

/** Все книги с переводчиками */
$books = Book::has('translators')->get();
foreach($books as $book){
	//...
}

/** проверка на наличие переводчиков у книги */
$books = Book::with('translators')->get();
foreach($books as $book){
	if($book->translators->count()){
         //... Есть переводчик
	}
}

И что тут может не работать? Т.е. не так. Если не работает, то скорее всего модель со связями составлена не корректно.


Время, качество, цена - выбирай любые 2

Не в сети

#8 24.04.2014 11:02:31

Андрей

Re: Проверка на существование записей в связующей таблице

Так проще всего так:

@if($book->translators->count())
    @foreach($book->translators as $translator)
         {{ $translator->name }}
    @endforeach
@else
Переводчиков нет (((
@endif

#9 24.04.2014 19:21:55

Re: Проверка на существование записей в связующей таблице

Agel_Nash, Андрей, спасибо за помощь!

Не в сети

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