Фигурные скобки используются в Lua?

Вы правы, что вызов first() в вашем запросе возвращает ноль, поэтому и возникает причина, по которой вы получаете эту ошибку.

Итак, что вы можете использовать для предотвращения вызова roles() для нулевого объекта, это использовать метод firstOrFail(), который выдаст ModelNotFoundException, который вы можете поймать, используя блок try catch, и обработать его изящно. [ 119]

И, как я вижу, по вашему мнению, вы не отправляете значение электронного письма в своей форме, поэтому вы должны поместить это письмо в скрытый ввод:

<td>
<input type="hidden" name="email" value="{{$user->email}}" />
{{$user->email}}"
</td>

не имея, поэтому вы получить null результат.

15
задан Sydius 26 March 2009 в 18:07
поделиться

3 ответа

Литералы таблицы.

Таблица является центральным типом в Lua и может рассматриваться или как ассоциативный массив (хеш-таблица или как словарь) или как обычный массив. Ключи могут быть значениями любого типа Lua кроме nil, и элементы таблицы могут содержать любое значение кроме nil.

Членский доступ массива сделан более эффективным, чем доступ ключа хеша негласно, но детали обычно не имеют значения. Это на самом деле делает разреженные массивы обработки удобными, так как устройство хранения данных только должно быть выделенным для тех ячеек, которые содержат значение вообще.

Это действительно приводит к универсальной идиоме массива на основе 1, которая чувствует себя немного странной для программиста C.

Например,

a = { 1, 2, 3 }

создает массив, сохраненный в переменной a с тремя элементами, которые (по совпадению) имеют те же значения как их индексы. Поскольку элементы хранятся в последовательных индексах, начинающихся 1, длина a (данный #a или table.getn(a)) 3.

Инициализация таблицы с ключами нецелого числа может быть сделана как это:

b = { one=1, pi=3.14, ["half pi"]=1.57, [function() return 17 end]=42 }

где b будет иметь записи названными, "пи", "половина пи" и анонимной функции. Конечно, поиск того последнего элемента, не выполняя итерации таблицы мог бы быть хитрым, если копия той самой функции не хранится в некоторой другой переменной.

Другое место, что фигурные скобки появляются, является действительно тем же семантическим значением, но оно скрыто (для нового пользователя Lua) позади небольшого количества синтаксического сахара. Распространено записать функции, которые берут отдельный аргумент, который должен быть таблицей. В этом случае вызывание функции не требует использования круглой скобки. Это приводит к коду, который, кажется, содержит соединение () и {} оба, по-видимому, используемые в качестве оператора вызова функции.

btn = iup.button{title="ok"}

эквивалентно

btn = iup.button({title="ok"})

но также меньше плохо обращается с глазами. Кстати, вызывание функции отдельного аргумента с литеральным значением также работает на строковые литералы.

43
ответ дан 1 December 2019 в 00:27
поделиться

Они используются для литералов таблицы, как Вы использовали бы в C:

t = {'a', 'b', 'c'}

Это - единственный общий падеж. Они не используются для разделителей блока. В lua таблице можно поместить значения различных типов:

t={"foo", 'b', 3}

Можно также использовать их в качестве словарей, а-ля Python:

t={name="foo", age=32}
1
ответ дан 1 December 2019 в 00:27
поделиться

конструктор list/ditionary (т.е. таблица вводят конструктора).

Они не используются для блоков кода, если это - то, что Вы имеете в виду. Для того, что Lua просто использует ключевое слово конца для окончания блока.

Посмотрите здесь

4
ответ дан 1 December 2019 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: