Welcome Guest, Not a member yet? Register   Sign In
listErrors() always displays error
#1

I am trying to validate the news form from the docs tutorial and display errors in my view. However, I always get all the errors. 
My Controller:
Code:
public function create()
    {
        helper('form');
        $model = new NewsModel();
        if (! $this->validate([
            'title' => 'required|min_length[3]|max_length[255]',
            'body'  => 'required'
        ]))
        {
            if($_POST){
                return redirect()->back()->withInput()->with('errors', $this->validator->getErrors());
            }else{
                echo view('templates/header', ['title' => 'Create a news item']);
                echo view('news/create');
                echo view('templates/footer');
            }
        }
        else
        {
            $model->save([
                'title' => $this->request->getVar('title'),
                'slug'  => url_title($this->request->getVar('title')),
                'body'  => $this->request->getVar('body'),
            ]);
            echo view('news/success');
        }
    }
My view:
Code:
h2><?= esc($title); ?></h2>

<?= \Config\Services::validation()->listErrors(); ?>

<form action="/news/create" method="post">

    <label for="title">Title</label>
    <input type="input" name="title" value="<?= old('title')?>" /><br />

    <label for="body">Text</label>
    <textarea name="body"><?= old('body')?></textarea><br />

    <input type="submit" name="submit" value="Create news item" />

</form>
According to the docs listErrors() should contain only failed fields, but if I post the form with a title of let's say "title" and I leave the body empty, still both errors are displayed:
  • The title field is required.

  • The body field is required.


Also when I visit the form for the first time, both errors appear.
Reply


Messages In This Thread
listErrors() always displays error - by muuucho - 03-13-2020, 04:03 AM



Theme © iAndrew 2016 - Forum software by © MyBB