callback у тебя принимает объект события (e), e.target указывает на вставляемый объект или впиши туда console.log(e) и поройся. Тебе нужно просто удалить этот элемент.
Дмитрий: нужно уточнить: для случая с inndoDb, у myisam блокировка на уровне таблицы, поэтому траблы с одновременной записью не возникнет. Можно использовать явные блокировки для верности habrahabr.ru/post/46542
Спасибо. Т.е. нужно использовать DI и ServiceLocator (спасибо qRoC ), погуглив понял что к чему. А вот как быть со статическими методами вроде ActiceRecord::find(), когда для теста логики БД является явно лишней?
Спасибо. Можно без $this->mockApplication();, во всяком случае, если наследоваться от \yii\codeception\TestCase. Переопределение метода setUp() без вызова внутри него родительского привело к тому, что метод mockApplication не вызвался, оттуда и проблема.
Cсобственно, через relations и было реализовано, думал есть другой способ, потому что мне не нравилась проверка прав в RBAC. Я, кажется, понял свою ошибку и решил сделать так (по итогу):
1) Убрать "искусственные айдишники" у таблиц пользователей (reader, librarian)
2) В качестве pk (айдишника) использовать fk связи с таблицей user
3) Все дополнительные сущности (order, cart и т.п.) связываются с reader или librarian фактически через id таблицы user. Теперь очень легко юзать $app->user->can().
4) В модели User есть метод getEntity, который в зависимости поля type возвращает экземпляры класса модели Reader или Librarian. (это для случая с Yii::$app->user->identity)
5) В модели Reader и Librarian для удобства добавил статический метод ::currentUser, который как раз юзает вышеописанный метод.
6) Конечно, в моделях Reader и Librarian подцепляет через hasOne User, для удобства (чтобы не писать $reader->user->fullName) можно определить пару геттеров в моделях ($reader->fullName).
Сомневаюсь, здесь ведь целая матрица inputов, скорее придется отказаться от такого подхода и сделать редактирование при клике, но всё равно интересно почему система себя так ведет, видать придется покапать
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.