Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用laravel fram工作提交数据后,表格输入被清除_Php_Laravel_Laravel 5_Laravel 5.2 - Fatal编程技术网

Php 使用laravel fram工作提交数据后,表格输入被清除

Php 使用laravel fram工作提交数据后,表格输入被清除,php,laravel,laravel-5,laravel-5.2,Php,Laravel,Laravel 5,Laravel 5.2,当我验证产品名称时,我有多个数据库连接,我发送消息要查看的产品名称之前存在,这里出现问题 消息出现在视图中,但已清除所有表单输入。 如果产品名称不存在,我将考虑如何恢复此问题。验证正在正确执行,如果在验证中发现错误,它将正常显示,并且表单输入未清除。 这是我的控制器代码 public function add(Request $request) { // start add if($request->isMethod('post')) { if(i

当我验证产品名称时,我有多个数据库连接,我发送消息
要查看的产品名称之前存在
,这里出现问题

消息出现在视图中,但已清除所有表单输入。 如果产品名称不存在,我将考虑如何恢复此问题。验证正在正确执行,如果在验证中发现错误,它将正常显示,并且表单输入未清除。 这是我的控制器代码

public function add(Request $request)
{
    // start add
    if($request->isMethod('post'))
    {

        if(isset($_POST['add']))
        {
            // start validatio array
            $validationarray=$this->validate($request,[

                //'name'  =>'required|max:25|min:1|unique:mysql2.products,name|alpha',
                'name'  =>'required|alpha',
                'price' =>'required|numeric',

            ]);

            // check name is exist
            $query = dBHelper::isExist('mysql2','products','`status`=? AND `deleted` =? AND `name`=?',array(1,1,$validationarray['name']));
            if(!$query) {

                $product=new productModel();

                // start add
                $product->name = $request->input('name');
                $product->save();
                $add = $product->id;
                $poducten = new productEnModel();
                $poducten->id_product = $add;
                $poducten->name = $request->input('name');
                $poducten->price = $request->input('price');
                $poducten->save();
                $dataview['message'] = 'data addes';
            } else {
                $dataview['message'] = 'name is exist before';
            }
        }
    }

    $dataview['pagetitle']="add product geka";
    return view('productss.add',$dataview);
}
这是我的看法

@extends('layout.header')
@section('content')

    @if(isset($message))
        {{$message}}
    @endif

    @if(count($errors)>0)
        <div class="alert alert-danger">
            <ul>
              @foreach($errors->all() as $error)
                  <li>{{$error}}</li>

                  @endforeach

            </ul>

        </div>
        @endif

    <form role="form"  action="add" method="post" enctype="multipart/form-data">
        {{csrf_field()}}
        <div class="box-body">
            <div class="form-group{{$errors->has('name')?'has-error':''}}">
                <label for="exampleInputEmail1">Employee Name</label>
                <input type="text" name="name" value="{{Request::old('name')}}" class="form-control" id="" placeholder="Enter Employee Name">
            </div>

            <div class="form-group">
                <label for="exampleInputEmail1">Email Address</label>
                <input type="text" name="price" value="{{Request::old('price')}}" class="form-control" id="" placeholder="Enter Employee Email Address">
            </div>
        </div>
        <!-- /.box-body -->
        <div class="box-footer">
            <button type="submit" name="add" class="btn btn-primary">Add</button>
        </div>
    </form>

@endsection

第一种方法是手动抛出验证异常。你会发现你是怎么知道的


第二种方法(我推荐这一种)可以生成一个。顺便说一下,你的控制器方法会更干净

手动引发验证异常的第一种方法。你会发现你是怎么知道的


第二种方法(我推荐这一种)可以生成一个。顺便说一下,你的控制器方法会更干净

您可以创建自己的自定义验证函数,如下所示。我想这应该对你有帮助

从->使用闭包找到它

$validationarray = $this->validate($request,
        [
            'name'  => [
                'required',
                'alpha',
                function ($attribute, $value, $fail) { 
                    //$attribute->input name, $value for that value.
                    //or your own way to collect data. then check.
                    //make your own condition.
                    if(true !=dBHelper::isExist('mysql2','products','`status`=? AND `deleted` =? AND `name`=?',array(1,1,$value))) {                        
                           $fail($attribute.' is failed custom rule. There have these named product.');
                    }
                },          
            ],
            'price' => [
                'required',
                'numeric',
            ]        
        ]);

您可以创建自己的自定义验证函数,如下所示。我想这应该对你有帮助

从->使用闭包找到它

$validationarray = $this->validate($request,
        [
            'name'  => [
                'required',
                'alpha',
                function ($attribute, $value, $fail) { 
                    //$attribute->input name, $value for that value.
                    //or your own way to collect data. then check.
                    //make your own condition.
                    if(true !=dBHelper::isExist('mysql2','products','`status`=? AND `deleted` =? AND `name`=?',array(1,1,$value))) {                        
                           $fail($attribute.' is failed custom rule. There have these named product.');
                    }
                },          
            ],
            'price' => [
                'required',
                'numeric',
            ]        
        ]);

我以前尝试过进行自定义验证,但我停止了,因为我如何才能通过数据库名、表名等参数验证。。如果你能告诉我怎么做@埃尔坎Özkök@hasan05比我快:)我以前尝试过进行自定义验证,但我停止了,因为我如何才能通过数据库名、表名等参数验证。。如果你能告诉我怎么做@埃尔坎Özkök@hasan05比我快:)将旧值从{{Request::old('price')}更改为{{old('price')}}值得一试我就是这样使用它的,在验证后从来没有空字段的问题。将旧值从{{Request::old('price')}更改为{{old('price')}值得一试我就是这样使用它的,验证后,空字段从未出现过问题。@erkan ozkok,谢谢您的赞赏。:)我遵照你的指示,增加了一些经验。虽然我不知道,但不管有没有帮助。@erkan ozkok,谢谢你的赞赏。:)我遵照你的指示,增加了一些经验。虽然我不知道,但它是否有帮助。