gpt4 book ai didi

validation - Cakephp3 将(自定义)验证传递给 flash 消息

转载 作者:行者123 更新时间:2023-12-02 04:18:20 25 4
gpt4 key购买 nike

通过以下方式将消息传递到 Flash 很简单:

$this->Flash->error(__('The user could not be saved. Please, try again.'));

但是当出现更多错误时:

$package->errors();

我只使用一个简单的 foreach 循环:

foreach ($package->errors() as $error=>$value)
{
foreach ($value as $single_error)
{
$error_array[] = ($single_error);
}
}

然后我将其传递给 flash 元素:

$this->Flash->custom($error_array, [
'key' => 'custom']);

在闪现消息中:

if ($message > 0) {
foreach ($message as $m) {
echo h($m).'<br />';
}
} else {
echo h($message);
}

我想知道这是处理一系列验证错误的更好方法。

最佳答案

如果出现错误,我使用以下方法:

Controller :

$errors = $action->errors();
$errorMessages = [];

array_walk_recursive($errors, function($a) use (&$errorMessages) { $errorMessages[] = $a; });

$this->Flash->error(__('Your action cannot be saved!'), ['params' => ['errors' => $errorMessages]]);

模板/Element/Flash/error.tcp:

<?php if (isset($params) AND isset($params['errors'])) : ?>
<ul class="collection with-header">
<li class="collection-header"><h5><?= __('The following errors occurred:') ?></h5></li>
<?php foreach ($params['errors'] as $error) : ?>
<li class="collection-item"><i class="material-icons">error</i><?= h($error) ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

结果:

result

对于任何感兴趣的人,我正在使用 MaterializeCSS。

关于validation - Cakephp3 将(自定义)验证传递给 flash 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32267853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com