Я новичок в красноречиве и laravel, поэтому у меня возникают проблемы с извлечением некоторой информации из базы данных. Для начала у меня есть таблица элементов, которая выглядит так:
Идентификатор типа
1 fancy 1 2 prof 5 3 fun 6
Я пытаюсь написать что-то вроде этого:
если причудливые равны 0, не отображать кнопку
Мне трудно понять, как получить доступ к двум столбцам одновременно, чтобы код знал, какой тип должен посмотреть на это количество.
Я предполагаю, что каждый type
существует только один раз (иначе ваш вопрос не имеет большого смысла для меня). Я также предполагаю, что у вас есть модель под названием " Type
.
Вы можете получить экземпляр модели следующим образом:
$fancy = Type::where('type', 'fancy')->first();
И затем получите количество, подобное этому:
if($fancy->quantity > 0){
// display button
}
Или немного короче, используйте pluck
для получения определенного значения из первой строки:
$fancyQuantity = Type::where('type', 'fancy')->pluck('quantity');
Если вам нужно выполнить эту проверку для нескольких ваших типов, я рекомендую использовать lists
для создания массива, который содержит все типы и все их количества:
$quantities = Type::lists('quantity', 'type');
if(array_get($quantities, 'fancy', 0) > 0){
// display fancy button
}
if(array_get($quantities, 'fun', 0) > 0){
// display fun button
}
Ну, ваш вопрос, кажется, немного смущает меня, но если я не получу ваш вопрос неправильно, вы должны рассмотреть возможность справиться с этим требованием с помощью метода Scope в модели Eloquent так же, как:
public function scopeIsFancy(){
return (bool) self::where('quantity','=',0);
}
И для метода области вызова через модель:
if(!ModelName::isFancy())
//do something if not fancy