👀
скорее всего, там обращение, типа $this->visibleButtons['update'] а у тебя $this->visibleButtons typeof closure, и такое обращение будет невозможно
👀
ща
👀
у меня пример есть
👀
👀
очень старый пример, так что не ругайтесь на код
👀
например, в delete, перед return'ом можно было-бы вставтиь if(!\Yii::$app->user->can('delete')) return false;
👀
тогда кнопка не рендерится
👀
ребята на том проекте, из которого я код взял, решили не заморачиваться с правами доступа, и выпилили все годные примеры :(
👀
👀
вот то же самое, только это на zend'е
👀
но логика такая же
Karim
'visibleButtons' => call_user_func(function () {return [];}) Так можно)
Anonymous
Коллеги, добрый день. Имеется вопрос: как можно логировать все ошибки PHP, хранив в MySQL, а клиенту отвечать, все окей, не парьтесь
Anonymous
где перехват лучше сделать
Anonymous
и как
Anonymous
А более глобально на уровне контроллера можно?
who are you
На уровне пхп наверное можно
Айбулат
А более глобально на уровне контроллера можно?
yii2 - https://nix-tips.ru/yii-2.html, php - http://php.net/manual/ru/function.set-error-handler.php
SiZE
@samdark а этот MR забросили из-за тестов? https://github.com/yiisoft/yii2-redis/pull/106
Alexander
Не знаю
Alexander
Времени не было дожать, наверное
Anonymous
дергаю $exception = Yii::$app->errorHandler->exception; $array=$exception->getTrace(); и хочу сохранить в json для помещения в базу - но сохраняется пустота.. getTraceAsString мне не достаточно
Anonymous
как выдернуть полный трейс лог и сохранить его...
Vladislav
а в это время в $array массив?
Vladislav
вардамп че грит?
Anonymous
вардамп - да массив
Anonymous
json_encode(array) - в базу пишет false
Anonymous
Anonymous
хотя вардамп в свою очередь - возвращает массив
Anonymous
а если убрать из 'trace' => json_ecode(array) , убрать тот json_encode - то в базу ничего не пишется, ругается на то что должна быть строка
Anonymous
вообще бред какой то
Айбулат
а какой формат поля в бд?
Vladislav
плюс, какие правила валидации?
Anonymous
БД - text
Anonymous
валидация - string
Айбулат
есть возможность изменить в бд на JSON?
Айбулат
валидация - string
без указания длины и т.п.?
Anonymous
да
Vladislav
после валидации нет ошибок?
Vladislav
$error->errors
Айбулат
попробуйте изменить
Айбулат
есть возможность изменить в бд на JSON?
Anonymous
getErrors идет ошибка что не строка
Vladislav
и ->save() возвращает тру?
Anonymous
если убираю 'trace' => json_ecode(array)
Anonymous
тут json encode
Ямиль
json_encode(array) - в базу пишет false
http://php.net/manual/ru/function.json-last-error.php
Айбулат
getErrors идет ошибка что не строка
если вы хотите хранить json, уберите валидацию по строке
Vladislav
какая разница?
Anonymous
всю жизнь проходило, json это же строка
Vladislav
json -строка
Anonymous
а не объект
Anonymous
и не массив
Vladislav
должно уметь хранится
Айбулат
это понятно
Айбулат
мало ли
Vladislav
а перед сейвомЮ, если сделать варддамп
Vladislav
$error
Vladislav
там что?
Vladislav
в частности $error->exception
Anonymous
так я делаю даже после
Anonymous
там массив
Vladislav
сюда выйлей
Anonymous
string(18) "Recursion detected"
Anonymous
$array=$exception->getTrace(); echo '<pre>'; print_r(json_encode($array)); echo '</pre>'; var_dump(json_last_error_msg());
Vladislav
ну еп вашу мать
Vladislav
не это)
Vladislav
дай мне var_dump($error->exception) прям перед ->save()
Anonymous
bool(false)
Vladislav
lol
Айбулат
если валидацию по string убрать, работает?
Vladislav
во-первых, ты нарушаешь пср
Vladislav
Vladislav
вот так делать нельзя
Vladislav
if (!empty($ex)) { $error->exception = json_encode(/*...*/); }
Anonymous
если сделать safe у exception БД - то записывается пустота
Vladislav
во-вторых
Vladislav
выкинь все, кроме 'trace'