Asp. Сетевой MVC и сессия

Давайте начнем с ответа на вопрос по SQL, все, что в кавычках, является литералом для SQL, поэтому вам нужно использовать ссылку на столбец и добавлять символы подстановки. Вы можете сделать это следующим образом:

SELECT * FROM Table1 WHERE email LIKE CONCAT('%', MOB, '%');

Теперь давайте посмотрим на Laravel, третий аргумент, где ожидается буквальное значение, а не другой столбец. Вы можете преодолеть это с помощью гдеRaw или DB :: raw :

Table1::whereRaw("email LIKE CONCAT('%', MOB, '%')");

или

Table1::where('email', 'LIKE', DB::raw("CONCAT('%', MOB, '%')"));
20
задан Community 23 May 2017 в 12:16
поделиться

3 ответа

В Session нет ничего несвойственного MVC, это жизненно важная часть Интернета, и большинство сайтов используют его каким-то образом , У вас действительно есть два основных варианта. Либо сохраните объект в базе данных между страницами (что означает сохранение неполного объекта), либо поместите его в сеанс. Оба имеют свои преимущества и недостатки.

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

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

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

19
ответ дан 30 November 2019 в 01:06
поделиться

Вы можете передавать его между представлениями с помощью TempData ... но вы должны продолжать передавать его через последующие представления. Он предназначен для последующего запроса, но это не значит, что вы не можете передать временные данные в следующий запрос, который также помещает те же данные во временные данные.

2
ответ дан 30 November 2019 в 01:06
поделиться

Вы пробовали <% = Html.HiddenField (...)%> ?

1
ответ дан 30 November 2019 в 01:06
поделиться
Другие вопросы по тегам:

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