FIXEDLaravel красноречивые прибудет таблица 1 на основе поиска таблицы 2
Таким образом, после многих ответов на этот вопрос я, наконец, получил мой вопрос продумана и ответил, но она по-прежнему оставляет мне интересно, почему красноречивый не может справиться вопрос о
A-> B-> C
Дан объект доступа всех элементов B на основе значения в C (имя = скрипт)
следующими работ раствора и из-за Laravel имеетОбласти обеспечивают чистоту, но я чувствую, что должно быть проще и быстрее.
public function scopeType($query, $type)
{
return $query->join('article_image_types', 'article_image_types.id', '=', 'article_images.article_image_type_id')->where('name', $type);
}
если у вас есть две таблицы изображения и image_type, и я хочу, чтобы найти все изображения с определенным типом, что бы это выглядело в красноречив?
Скажем, у вас есть тип «сценарий» с идентификатором «1» Я знаю, что я могу сделать, из коллекции
where('image_type_id', '1')
изображения, но как бы я это сделать так, ниже работал
where('name', 'script')
ЦЕЛЬ:
Я хочу, чтобы иметь возможность доступа к этим данным легко из файла лезвия так что-то вроде ниже, используя сферу
<input type="text" name="['image']['script']" value="{!! $article->articleimage()->type('script') !!}">
или даже лучше доступа изображения в зависимости от типа через форму модели связывания [ «образ»] [ «сценарий»]
Так это работает
foreach($article->articleImages->all() as $item) {
dd($item->articleimagetype->name);
}
и возвращает «сценарий»
Но как получить только тот, который говорит "сценарий"
:: UPDATE ::
Так мне настроить масштаб, но, как я ожидал, что проблема, которую я пытаюсь сделать это на основе вторичных таблиц называют так
$query->where('name', $type);
ваше решение будет работать, если я хотел бы сделать
$query->where('image_type_id', 1);
SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 'name' в 'where clause' (SQL: select * from где .
article_id
= 32 и .article_id
не утратившийname
= сценарий)
UPDATE
Так делает ниже производит то, что я хочу, кроме того что я не вернусь именем типа и я не могу показаться, чтобы получить его назад с имеет ('articleimagetype') или имеет ('') articleimages.articleimagetype
$article->articleImages()->whereHas('articleimagetype', function($query){
$query->where('name', 'script');
})->has('articleimagetype')->get();
Я не вижу здесь вопроса – swatkins
Я не могу заставить его вернуть только тот, у которого есть имя типа imagetype «script», он вернет все три, но даст тип null для тех, У меня есть скрипт, когда я запускаю только что добавленный скрипт. –