как перенаправить и показать ошибку проверки в laravel - PullRequest
0 голосов
/ 10 июня 2019

добрый день, Я новичок в Laravel Framework, и я сталкиваюсь с этими двумя проблемами: -
первый
Я хочу перенаправить на свою страницу автоматически через 2 секунды.
второй
Я делаю пользовательский вызов функции (существует) Если эта функция возвращает истинные данные, я хочу напечатать «имя существует раньше», но проблема здесь в том, что форма была восстановлена, когда эта функция возвращает истину и печатает сообщение. как предотвратить сброс формы из входных значений? вот мой код

код контроллера

enter code here
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

            if(true !=dBHelper::isExist('mysql2','products','`status`=? AND `deleted` =? AND `name`=?',array(1,1,$validationarray['name'])))
            {

                $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);
}

это мои маршруты

Route::get('/products/add',"produtController@add");
    Route::post('/products/add',"produtController@add");

это мой взгляд

@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

Ответы [ 3 ]

1 голос
/ 11 июня 2019
//use $request instead of $_POST
if($request->isMethod('post'))
    {
        if(isset($request['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
0 голосов
/ 10 июня 2019

Попробуйте использовать приведенный ниже код для отображения ошибки на странице просмотра.

   $validator = Validator::make($params, $req_params);
    if ($validator->fails()) {
      $errors = $validator->errors()->toArray();
      return Redirect::to($web_view_path)->with('errors', $errors);
    }

. Вы хотите автоматически перенаправить на другую страницу, отправить форму, используя ajax, и использовать ниже метод settimeout.

setTimeout(function(){  // Here mentioned the redirect query }, 3000);
0 голосов
/ 10 июня 2019

Я надеюсь, что понял ваш вопрос.Вместо использования {{Request :: old ('price')}} используйте {{old ('price')}}. Это должно получить данные формы после перезагрузки страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...