Миха Панкратов: метод delete может вернуть вам False либо его свойство isValid = False тогда жизненный цикл удаления будет прерван. Во внутрь он ничего не принимает, что вы хотели этим добиться? Не валидиривать при удалении? вы же в начале получаете определенный объект, а потом его удаляете.
Это пример, вы можете сортировать по чему угодно. У вас продукт связан с ценой и через продукт можете достучаться и до цен. Но если это не то о чем я думаю. Всегда можно сделать через INNER JOIN в QueryBulder
по идее так. Где priceCol - имя столбца в таблице цены.
Вы точно так же можете задать и условия разного рода, через Where, но при условии, что вы их связали через hasMany.
prices()->where('title', '=', 'foo')->first();
jaxel: это к сожалению, по рукам надо дать тем, кто создавал это костыльное чудище. Мне приходится работать с тем, что имею. Конечно, было бы оно отдельно, и связи реализовать проще и с объектами работать легче.
Влад Волынец: Но внимательно изучите возможность Yii2. Суть в том, что в Yii2 шаблоны сильно интегрированы в фреймворк: лайауты, виджеты, регистрация метатегов, ассеты, кэширование и прочее. По этому Твиг скорее излишество =)
У вас интернет магазин. предположим на одной странице отображается 50 товаров. Не важно как к вам приходит массив с данными.
Вы будете по старинке через циклы вытаскивать все данные из ассоциативных массивов и расставлять их по шаблону? Это займет очень много времени и еще больше строк кода. Когда в шаблонизаторе будет 2-3 строчки.
{% for result in result %}
{{'result.goodsTitle'| trans}}
{{result.goods}}
{% endfor %}
Таким образом я могу отобразить сколько угодно товаров. а trans - указывает на то, что существует отдельный документ с переводами. Я уже молчу о создании таблиц и ячеек, автоматом через {% if %}{% endif %}
Php и сам является шаблонизатором, но с ним много возни.
Влад Волынец: ИМХО конечно. Но верстальщики нынче занимаются только разметкой страницы. html5+css3+Js+Bootstrap. Шаблонизаторы прерогативы Back-end разработчиков, поскольку в них есть иногда и наследования и ООП, циклы и многое другое, о чем верстальщик может знать мало или не знать вовсе. Менять шаблон под свои нужды будет менять человек, который работает в бек энде. Я уже молчу про Ангуляр или другой синтаксический сахар.
Проще говоря, очень повезет, если вы найдете верстальщика, который будет знать это все и грамотно этим пользоваться. чаще будут джуны на php, которые будут это верстать =)
Boolean_Type: У ПХП маленький порог вхождения. достаточно документации под рукой и пробовать. Есть еще и Ютуб, но не книги ИМХО. Уже весь тостер забит кодом, на тему mysqli и вопросами, почему это не работает... Но вы правы, немного забылся. И это скорее с чего начать и к чему стремиться.
Boolean_Type: Я же не описал это как обязательное требование. Естественно, разработка занимает большое время, тем более в одиночку. Не обязательно реализовывать все по нескольку раз одно и то же. Можно написать модуль к уже готовому блогу. Авиарейсы - это то же самое, что и расписание. Предположим, что у вас стендап шоу или ИТ конференция по стране. И все хотят купить билеты, Логика такого приложения не меняется, но меняется его показ, это кинотеатры, театры(тут реализация мест на JS+canvas или можно без ухищрений обойтись жс с бутстрапом), Авиа/морское/сухопутное передвижение(тут вполне подойдут и обычные формы). Цель то остается такой же. Сложные вещи позволяют выявить слабые места, тогда самостоятельно можно увидеть, чего в действительно тебе не хватает, каких инструментов или знаний.
Давид: Мид делает то же самое, только без присмотра ментора. + он лучше соображает в коде и использует лучше фреймворк, синтаксический сахар в коде например DQL Query Bulder и ему подобные. Знание особенностей фреймворка и его слабые стороны. У мида уже более сложные задачи. Например написать REST full api. Я сам по себе еще зеленый, но и это приходилось писать в связке Yii2 + Angular JS. Разница между Middle и Senior не только в опыте, но и умение писать архитектуру проекта, видеть косяки на этапе проектирования. Спокойно решать поставленные задачи, уметь делиться опытом с коллегами. Без проблем переключаться между проектами по мелочи, ну и конечно держать себя в адеквате и написать понятный и простой код, а не материться на Индуса, который до этого писал этот код.
И это лично мой опыт и те, с кем мне пришлось столкнуться. Не скажу, что так везде. )
И обратите должное внимание JS и их фреймворкам: Ангуляр, бэкбон(этот совет опциональный, но это выделит вас среди других претендентов, а изучение азов не займет много времени).
Все проверки есть в контроллере, нужно было именно что бы QB имел такую возможность "достраивать запрос", а не в качестве безопасности. И как советует BoShurik делать не стоит. Во первых не ясно что именно Null, а во вторых это ломает всю функцию и приводит к ошибке синтаксиса.
BoShurik: и что вас смущает, наличие того, что могут быть двойные имена?
Анна-Мария например. Введя Мария или просто Мар он найдет и этого пользователя.
У журналистов, есть спец пропуска и определенный ряд преимуществ. По крайней мере на Украине. Неоднократно не пускали куда хотелось, но в качестве журналиста без проблем.