首頁 > 後端開發 > php教程 > Laravel5 表单验证问题

Laravel5 表单验证问题

WBOY
發布: 2016-06-06 20:25:57
原創
1123 人瀏覽過

为什么设置了表单验证的attributes仍然不显示其设定的值?

如图所示:
设置了

<code>$attributes = array(
            "title" => '标题',
            'content' => '正文'
        );</code>
登入後複製
登入後複製

提示仍然是title 不能小于10个字 而不是标题 不能小于10个字

有用过的大神知道是怎么回事没。

Laravel5 表单验证问题

貌似图片挂了,截图:http://7xjkan.com1.z0.glb.clouddn.com/QQ%E5%9B%BE%E7%89%8720151026170220.png

controller:

<code>    public function update(Request $request,$id)
    {

        $rules = array(
            'title' => 'required|max:255|min:10',
            'content' => 'required|min:50|max:20000',
        );
        $message = array(
            "title.required"=> ":attribute 不能为空",
            "title.min"=> ":attribute 不能小于10个字",
            "title.max"=> ":attribute 不能超过50个字",
            "content.required"=>":attribute 不能为空",
            "content.min"=>":attribute 不能小于50个字",
            "content.max"=>":attribute 不能超过20000个字"
        );

        $attributes = array(
            "title" => '标题',
            'content' => '正文'
        );

        /*$this->validate($request, [
            'title' => 'required|max:255|min:5',
            'content' => 'required',
        ]);*/
        $this->validate($request,$rules,$message,$attributes);
        $article = Article::find($id);
        $article->title = \Input::get('title');
        $article->content = \Input::get('content');

        if ($article->save()) {
            return \Redirect::to('article');
        } else {
            return \Redirect::back()->withInput()->withErrors('保存失败!');
        }
    }</code>
登入後複製
登入後複製

视图:

<code>@extends('app')

@section('content')
<div class="container">
<h1 class="page-header text-center">Article</h1>
<div class="row">
    <div class="col-md-4"></div>
    <div class="col-md-4">
    @if (count($errors) > 0)
            <div class="alert alert-danger">
              <strong>Whoops!</strong> There were some problems with your input.<br><br>
              <ul>
                @foreach ($errors->all() as $error)
                  <li>{{ $error }}</li>
                @endforeach
              </ul>
            </div>
    @endif

        <form action="%7B%7B%20URL('article/'.%24article->id)%20%7D%7D" method="POST">
            <input name="_method" type="hidden" value="PUT">
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <input type="text" name="title" class="form-control" required="required" value="{{ $article->title }}">
            <br>
            <textarea name="content" rows="10" class="form-control" required="required">{{ $article->content }}</textarea>
            <br>
            <button class="btn btn-lg btn-info">编辑 Page</button>
        </form>

    </div>
    <div class="col-md-4"></div>

</div>
</div>
@stop</code>
登入後複製
登入後複製

回复内容:

为什么设置了表单验证的attributes仍然不显示其设定的值?

如图所示:
设置了

<code>$attributes = array(
            "title" => '标题',
            'content' => '正文'
        );</code>
登入後複製
登入後複製

提示仍然是title 不能小于10个字 而不是标题 不能小于10个字

有用过的大神知道是怎么回事没。

Laravel5 表单验证问题

貌似图片挂了,截图:http://7xjkan.com1.z0.glb.clouddn.com/QQ%E5%9B%BE%E7%89%8720151026170220.png

controller:

<code>    public function update(Request $request,$id)
    {

        $rules = array(
            'title' => 'required|max:255|min:10',
            'content' => 'required|min:50|max:20000',
        );
        $message = array(
            "title.required"=> ":attribute 不能为空",
            "title.min"=> ":attribute 不能小于10个字",
            "title.max"=> ":attribute 不能超过50个字",
            "content.required"=>":attribute 不能为空",
            "content.min"=>":attribute 不能小于50个字",
            "content.max"=>":attribute 不能超过20000个字"
        );

        $attributes = array(
            "title" => '标题',
            'content' => '正文'
        );

        /*$this->validate($request, [
            'title' => 'required|max:255|min:5',
            'content' => 'required',
        ]);*/
        $this->validate($request,$rules,$message,$attributes);
        $article = Article::find($id);
        $article->title = \Input::get('title');
        $article->content = \Input::get('content');

        if ($article->save()) {
            return \Redirect::to('article');
        } else {
            return \Redirect::back()->withInput()->withErrors('保存失败!');
        }
    }</code>
登入後複製
登入後複製

视图:

<code>@extends('app')

@section('content')
<div class="container">
<h1 class="page-header text-center">Article</h1>
<div class="row">
    <div class="col-md-4"></div>
    <div class="col-md-4">
    @if (count($errors) > 0)
            <div class="alert alert-danger">
              <strong>Whoops!</strong> There were some problems with your input.<br><br>
              <ul>
                @foreach ($errors->all() as $error)
                  <li>{{ $error }}</li>
                @endforeach
              </ul>
            </div>
    @endif

        <form action="%7B%7B%20URL('article/'.%24article->id)%20%7D%7D" method="POST">
            <input name="_method" type="hidden" value="PUT">
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <input type="text" name="title" class="form-control" required="required" value="{{ $article->title }}">
            <br>
            <textarea name="content" rows="10" class="form-control" required="required">{{ $article->content }}</textarea>
            <br>
            <button class="btn btn-lg btn-info">编辑 Page</button>
        </form>

    </div>
    <div class="col-md-4"></div>

</div>
</div>
@stop</code>
登入後複製
登入後複製

<code>'custom' => [
        'title' => [
            'required' => '标题不能为空',
        ],
    ],</code>
登入後複製

找到resources/lang/en/validation.php中的custome,这个满足你的要求不?更多的Laravel 5教程:

https://laravist.com/series/laravel-5-basic

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板