Павел
+
Норм работает? Много плюшек фреймворка приходится отбрасывать?
Dmitriy
норм. плюшки ? =) а какие плюшки были без доктрины ?
Павел
Формы например, тот же грид вью
Dmitriy
грид вью не юзали. нафиг. формы да пропадут
Dmitriy
надо писать отдельно интеграцию для них в доктрину
Dmitriy
а норм пакетов для этого нет
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
с доктриной мб работать как в моделью yii и тогда какая разница, не?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
все равно модель не модель
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
зато поддержка сохранится
Павел
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
интерфейс поддержать и готово
Павел
Интерфейс наверняка тянет кучу всего чего мы не реализуем. Это надо смотреть
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
надо, если горит можно пилить
Dmitriy
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Dmitriy
куда? в кого ?
Dmitriy
репозиторий чтоли ?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
все вместе с моделью
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
как переходный интерфейс
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
магии много только будет
Dmitriy
Костыли какието.
Dmitriy
В Дм нет понятие модель
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
ну а другого пока в голову и не лезет
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
ну энтити
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
или чем у них там репозиторий крутит
Dmitriy
Это называется патерн репозиторий
Dmitriy
это уже другая песня
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Окей, может быть
Павел
Всем спасибо за отзывы.
Maxim
По композеру может кто-то проконсультировать?
- Updating pear/pear dev-master (736a1b2 => 736a1b2): Update failed (Source directory \vendor\pear\pear has unpushed changes on the current branch:
что оно хочет и как исправить? :) делаю просто composer update
Павел
у тебя в папке \vendor\pear\pear измененные файлы. глянь git status'ом
Павел
а, сорри там же другой проект ничего ты не увидишь
Павел
попробуй вообще удалить паку \vendor\pear\pear только забэкапь ее
Maxim
Павел, спасибо, помогло :)
Павел
Artem
Такой вопрос: я в urlmanager создал правило с таким паттерном: /page/. Когда я обращаюсь к странице как http://sitename/page то правило работаает, а если обратиться как http://sitename/page/ то нифига. Кто-нить в курсе как это победить?
Toly
Artem
[
'pattern' => '/page-price/',
'route' => 'redirects/redirect',
'defaults' => ['id' => 4],
],
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
А зачем редирект а не slug? А по теме https://yii2-cookbook.readthedocs.io/handling-trailing-slash-in-urls/
Artem
Artem
там статичные страницы были
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
а, что-то в стиле map, окей) в общем по ссылке выше удалять лишний слеш
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
минус в редиректе только, но перманентном
Artem
В общем если в правиле написать 'suffix' => '/' то начинает обрабатывать нормально Url где в конце косая черта
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
урлы разные же будут
Artem
т.е?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
технически /page и /page/ две разные страницы, с точки зрения того же сео
Artem
ну да, оно и нужно
Artem
статичные страницы на старом сайте были именно в виде /page/
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
окей
Anonymous
Oleg
всем привет, не работают поведения, все по стандарту в моделе прописал, в таблице поля создал, но поля не заполняются. в моделе поведенья есть ["_behaviors":"yii\base\Component":private]=>
array(2) {
["TimestampBehavior"]=>
object(yii\behaviors\TimestampBehavior)#146 (6) {
["createdAtAttribute"]=>
string(10) "created_at"
["updatedAtAttribute"]=>
string(10) "updated_at"
["value"]=>
NULL
["attributes"]=>
array(2) {
["beforeInsert"]=>
array(2) {
[0]=>
string(10) "created_at"
[1]=>
string(10) "updated_at"
}
["beforeUpdate"]=>
array(1) {
[0]=>
string(10) "updated_at"
}
}
["skipUpdateOnClean"]=>
bool(true)
["owner"]=>
*RECURSION*
}
Куда копать?
mr.
Oleg
да class UserAccountsFields extends ActiveRecord
{
private $_old_password;
public static function tableName(){
return 'user_accounts_fields';
}
public function behaviors(){
return [
'TimestampBehavior' => [
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
],
],
'BlameableBehavior' => [
'class' => BlameableBehavior::className(),
'createdByAttribute' => 'created_by',
'updatedByAttribute' => 'updated_by',
],
];
}
Vladislav
используй тройное `
Vladislav
чтоб код вставлять
mr.
Покажи что в beforeInsert()
Vladislav
MyClass
{
private $app;
public function()
}
Vladislav
monospace получается
Oleg
["_events":"yii\base\Component":private]=>
array(2) {
["beforeInsert"]=>
array(2) {
[0]=>
array(2) {
[0]=>
array(2) {
[0]=>
object(yii\behaviors\TimestampBehavior)#146 (6) {
["createdAtAttribute"]=>
string(10) "created_at"
["updatedAtAttribute"]=>
string(10) "updated_at"
["value"]=>
NULL
["attributes"]=>
array(2) {
["beforeInsert"]=>
array(2) {
[0]=>
string(10) "created_at"
[1]=>
string(10) "updated_at"
}
["beforeUpdate"]=>
array(1) {
[0]=>
string(10) "updated_at"
}
}
["skipUpdateOnClean"]=>
bool(true)
["owner"]=>
*RECURSION*
}
[1]=>
string(18) "evaluateAttributes"
}
[1]=>
NULL
}
mr.
Что ты мне скидываешь, метод покажи.
Oleg
mr.
я его не прописывал...
Я Timestamp/Blameable behavior одной строкой подключаю, и ты попробуй
public function behaviors(){
return [
TimestampBehavior::class,
BlameableBehavior::class,
];
}
Vladislav
скнь код всей модели в fiddle
mr.
Сам подумай, зачем кофигурировать что-либо, если оно не отличается от значений по умолчанию.
Vladislav
и дай ссылку
Oleg
дело в том, что в соседнем проекте тоже самое и там все работает, мне нужно их именовать, для того. что бы иметь возможность его отключить
mr.
Я вангую у него переопределен beforeSave, а там не дернул parent из-за чего евент не триггается
Oleg
ща
Oleg
https://pastebin.com/8aYukSrD
mr.
Или вырезал код?
Pavel
useless beforeSave
mr.
Pavel
ну да
Vladislav
в рулезах описаны все поля?