Ларавел красноречив в двух колонках

0

Я новичок в красноречиве и laravel, поэтому у меня возникают проблемы с извлечением некоторой информации из базы данных. Для начала у меня есть таблица элементов, которая выглядит так:

Идентификатор типа

1 fancy 1 2 prof 5 3 fun 6

Я пытаюсь написать что-то вроде этого:

если причудливые равны 0, не отображать кнопку

Мне трудно понять, как получить доступ к двум столбцам одновременно, чтобы код знал, какой тип должен посмотреть на это количество.

Теги:
laravel-4

2 ответа

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
}
  • 0
    Извините, я не объяснил больше, но вы предположили, что правильно. Я попробую это.
0

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

public function scopeIsFancy(){
    return (bool) self::where('quantity','=',0);
}

И для метода области вызова через модель:

if(!ModelName::isFancy())
 //do something if not fancy

Ещё вопросы

Сообщество Overcoder
Наверх
Меню