【问题标题】:Failed to store data in laravel 8无法在 laravel 8 中存储数据
【发布时间】:2021-09-25 21:02:26
【问题描述】:

我正在制作一个表单,以便用户可以向管理员请求创建一个新帐户,但是每次我尝试发送数据时,它总是失败,即使我已经检查了代码的每一部分,任何人都可以帮帮我?

表格代码:

                                            <form method="POST" action="{{ url('/request-akun/make-request') }}">
                                                @csrf
                                                <div class="form-group col-md-12">
                                                    <label for="name">Nama</label>
                                                    <input type="text" name="name" class="form-control" id="name">
                                                </div>
                                                <div class="form-group col-md-12">
                                                    <label for="email">Email</label>
                                                    <input type="text" name="email" class="form-control" id="email">
                                                </div>
                                                <div class="form-group col-md-12">
                                                    <label for="password">Password</label>
                                                    <input type="text" name="password" class="form-control"
                                                        id="password">
                                                </div>
                                                <div class="form-group col-md-12">
                                                    <label for="password_confirm">Konfirmasi Password</label>
                                                    <input name="password_confirm" type="text" class="form-control"
                                                        id="password">
                                                </div>
                                                <button type="submit" class="btn btn-primary pull-right"
                                                    style="margin-right: 15px;">Request</button>
                                            </form>

这是控制器:

public function requestAccount(Request $request){
        $request->validate([
            'name' => 'required|string|max:255',
            'ra_instansi_id' => 'required',
            'email' => 'required|string|email|max:255',
            'password' => 'required',
            'password_confirm' => 'required'
        ]);
        if ($request->get('password') == $request->get('password_confirm')){
            $data = new requestAkun();
            $data->name = $request->get('name');
            $data->ra_user_id = Auth::id();
            $data->ra_instansi_id = Auth::user()->instansiID;
            $data->email = $request->get('email');
            $data->password = $request->get('password');
            $data->status = "pending";
            $data->save();
            return Redirect::to('/request-akun/request-lists')->with('success','Request Berhasil dikirim');
        } else {
            return Redirect::to('/request-akun/request-lists')->with('error','Password tidak sama');
        }  
    }

这是型号代码:

class requestAkun extends Model
{
    use HasFactory, Uuids;
    protected $table = 'request_akun';
    public $timestamps = true;
    protected $fillable = [
        'name',
        'ra_instansi_id',
        'ra_user_id',
        'email',
        'password',
        'status'
    ];
}

这是路线:

Route::prefix('request-akun')->group(function(){
        Route::post('/make-request',[userController::class,'requestAccount'])->name('make-request');
    });

【问题讨论】:

  • 您正在使用POST 方法传递数据,因此请将$request-&gt;get('password') 替换为$request-&gt;password

标签: mysql laravel web eloquent laravel-8


【解决方案1】:
  1. 错误是您的表单中没有ra_instansi_id 输入。

  2. 在您的表单中不显示任何验证错误消息,因此最好显示错误,以便您检查哪个验证失败。

3.您可以将输入名称password_confirm更改为password_confirmation,而不是检查密码是否匹配,这样您就可以如下进行更改

<input name="password_confirmation" type="text" class="form-control"
                                   id="password_confirmation">  

       
                               

并在您的验证中

 $validator=Validator::make($request->all(),[
            'name' => 'required|string|max:255',
            'ra_instansi_id' => 'required',
            'email' => 'required|string|email|max:255',
            'password' => 'required|confirmed',
            'password_confirmation' => 'required'
        ]);

dd($validator->errors());

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 2017-01-24
    • 2021-11-13
    • 2016-09-23
    • 2018-08-13
    相关资源
    最近更新 更多