首页 > 解决方案 > Laravel:调用数组上的成员函数传递()

问题描述

我正在我的项目中注册一个用户;我的数据库中有一个唯一的列(电子邮件)我使用了 laravel 验证,它在输入重复的电子邮件时有效,但是当输入的电子邮件不重复时,我有错误,它说“调用数组上的成员函数传递()”。

我已阅读并遵循问题的答案,但这对我没有帮助。

错误

控制器

    public function register_use(){

        $password = str_random(10);
        $data = array('password'=>$password);

      return view('library.User.User_register', $data);
    }

    public function register_user_p(Request $request){

        $validate= $request->validate([
            'email' => 'unique:users',  
        ]);


        $now = date('Y-m-d');
       $image =  $request->file('image')->store("images");


if($validate->passes()){
    $register = DB::table('users')->insert(
            ['name'=>$request->full_name,
             'email'=>$request->email,
             'password'=>$request->password,
             'type'=>$request->type,
             'created_at'=>$now,
             'image'=>$image
            ]
        );

        Session::flash("adduser", "موفقانه ثبت شد.");
        return back(); 
}
else{
    Session::flash("adduser", "موفقانه ثبت نشد.");
    return back(); 
}

    }

看法

@extends('library.master')
@section('content')
<div class="row">
            <div class="col-md-12 col-sm-12 col-xs-12">
                <div class="x_panel">
                    <div class="x_title">
                        <h2>ثبت کتاب جدید
                        </h2>
                        <ul class="nav navbar-right panel_toolbox">
                            <li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"
                                   aria-expanded="false"><i class="fa fa-wrench"></i></a>
                                <ul class="dropdown-menu" role="menu">
                                    <li><a href="#">تنظیمات 1</a>
                                    </li>
                                    <li><a href="#">تنظیمات 2</a>
                                    </li>
                                </ul>
                            </li>
                            <li><a class="close-link"><i class="fa fa-close"></i></a>
                            </li>
                        </ul>
                        <div class="clearfix"></div>
                    </div>
                    <div></div>
                    <!-- success -->
                    <div class="box-header with-border" style="margin-top: 20px;">

                  @if(Session::has("adduser"))
                  <div class="alert alert-success">
                    <h3 align="center">
                      {{Session::get("adduser")}}
                  </h3>
                  </div>
                  @endif
                </div>

                <!-- error -->

                <div class="box-header with-border" style="margin-top: 20px;">

                  @if(count($errors) > 0)
                  <div class="alert alert-danger">

                  <ul>
                     @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
                     @endforeach
                  </ul>

                  </div>
                  @endif


                </div>

                    <div class="x_content" style="margin-top: 30px;">

                    <form action="register_user_post" method='post' enctype="multipart/form-data" id="demo-form2" data-parsley-validate class="form-horizontal form-label-left">

                    {{ csrf_field() }}
<div class="form-group">
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="full_name">نام کامل
        <span class="required">*</span>
    </label>
    <div class="col-md-6 col-sm-6 col-xs-12">
        <input type="text" id="first-name" required="required" name="full_name"
               class="form-control col-md-7 col-xs-12" placeholder="اسم کامل را وارد کنید">
    </div>
</div>
<div class="form-group">
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="last-name"> ایمیل <span class="required">*</span>
    </label>
    <div class="col-md-6 col-sm-6 col-xs-12">
        <input type="email" id="last-name" name="email" required="required"
               class="form-control col-md-7 col-xs-12" placeholder="ایمیل را وارد کنید">
    </div>
</div>
<div class="form-group">
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="last-name"> رمز عبور <span class="required">*</span>
    </label>
    <div class="col-md-6 col-sm-6 col-xs-12">
        <input type="text" id="last-name" name="password" required="required"
               class="form-control col-md-7 col-xs-12" value="{{$password}}" placeholder=" رمز عبور را وارد کنید">
    </div>
</div>

<div class="form-group">
    <label class="control-label col-md-3 col-sm-3 col-xs-12"> نوعیت <span class="required">*</span></label>
    <div class="col-md-6 col-sm-6 col-xs-12">


                              <select class="form-control col-md-7 col-xs-12" name="type">
                                  <option >انتخاب نوعیت کاربر</option>
                                  <option value = "admin">ادمین</option>
                                  <option value = "employee">کارمند</option>
                              </select>
                          </div> 
</div>

<div class="form-group">
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="last-name"> عکس
    </label>
    <div class="col-md-6 col-sm-6 col-xs-12">
        <input type="file" id="last-name" name="image" 
               class="form-control col-md-7 col-xs-12" >
    </div>
</div>
<div class="ln_solid"></div>
<div class="form-group">

    <div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
    <button type="submit" class="btn btn-success" style="width:150px;">ثبت</button>
    </div>
</div>

</form>
                    </div>
                </div>
            </div>
        </div>
@stop

标签: laravelvalidation

解决方案


您必须为此使用手动验证,请检查链接

public function register_user_p(Request $request){

         $validator = Validator::make($request->all(), [
             'email' => 'unique:users',  
         ]);


        $now = date('Y-m-d');
       $image =  $request->file('image')->store("images");

// i never used passes() here so try with $validator->fails() if its not worked 
if($validator->passes()){
    $register = DB::table('users')->insert(
            ['name'=>$request->full_name,
             'email'=>$request->email,
             'password'=>$request->password,
             'type'=>$request->type,
             'created_at'=>$now,
             'image'=>$image
            ]
        );

        Session::flash("adduser", "موفقانه ثبت شد.");
        return back(); 
}
else{
    Session::flash("adduser", "موفقانه ثبت نشد.");
    return back(); 
}

推荐阅读