2017-08-04 7 views
0

登録フォームを作成します。だから、私はRegShortController.phpファイルを作成した後、RegShort.blade.phpというビューファイルを作成した。 RegShortController.phpファイルでは、insertという関数を使用しました。 ", PW ) values (, ,))SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null (SQL: insert into学術(,ユーザ名"LaravelとMySqlエラーを解決する方法SQLSTATE [23000]

だから、どのようにこの問題を解決するには

?? - 私はウェブサイトを実行する場合でも、私はこのエラーを得ました

enter image description here

は、ここで私は、このスレッドを編集するときRegShort.blade.phpは、残念ながら、私が削除した名前は、ユーザー名とパスワードの属性

ファイルです。今、私はそれを修正しました。ここで

<form action="{{ route('RegShort') }}" method="post" enctype="multipart/form-data"> 

{{ csrf_field() }} 

<div class="form-group"> 
    <label>Name : *</label> 
    <input type="text" class="form-control" name="name"> 
    </div> 

    <div class="form-group"> 
    <label>Username : *</label> 
    <input type="text" class="form-control" name="username" required> 
    </div> 

    <div class="form-group"> 
    <label>Password : *</label> 
    <input type="password" class="form-control" name="password"> 
    </div> 

    <button type="submit" class="btn btn-primary" name="submit">Submit</button> 

</form> 

RegShortController.phpはここ

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use DB; 

class RegShortController extends Controller 
{ 

    public function index() 
    { 
     return view('RegShort'); 
    } 

    function insert(Request $req) 
    { 

     $name = $req->input('name'); 
     $username = $req->input('username'); 
     $password = $req->input('password'); 

     $data = array("name"=>$name,'username'=>$username,"pw"=>$password); 

     DB::table('academic')->insert($data); 

    } 

} 

ファイルである私が作成したルートです。

Route::any('/RegShort', '[email protected]')->name('RegShort'); 
+1

名の欄に値を割り当てるか、あなたは 'Model'を使用していない理由を表 – scaisEdge

+0

から制約を削除しますか..? –

+0

あなたは 'username'入力または' password'入力の 'name'属性を持っていません。これは、それらの入力のデータが要求には含まれていないことを意味します。 –

答えて

4

nameフィールドが空以外にする必要があり、ユーザー名とパスワードのname属性を持っていけませんサーバーにデータを送信する前に、javascriptでデータを検証することもできます(クライアント側の検証)。

編集ウルHTML、UVE逃した名前はウル入力用の属性:

<form action="{{ route('RegShort') }}" method="post" enctype="multipart/form-data"> 

{{ csrf_field() }} 

<div class="form-group"> 
    <label>Name : *</label> 
    <input type="text" class="form-control" name="name"> 
    </div> 

    <div class="form-group"> 
    <label>Username : *</label> 
    <input type="text" class="form-control" name="username" required> 
    </div> 

    <div class="form-group"> 
    <label>Password : *</label> 
    <input type="password" name="password" class="form-control"> 
    </div> 

    <button type="submit" class="btn btn-primary" name="submit">Submit</button> 

</form> 

もウルのルートを変更します。

Route::get('/RegShort', '[email protected]')->name('RegShort'); 
Route::post('/RegShort', '[email protected]'); 
+0

'name'フィールドが本当に必要な場合は、' required'属性を追加することもできます。 – iArcadia

+0

@ЛевМакаренко - 「ローカルホストのページが動作していないため、ローカルホストがあなたを何度もリダイレクトしました。」..だから、これを修正する方法は? –

+0

@iArcadia - 私はそれを行った..しかし、まだそれは動作しません.. –

2

あなたが$ reqをオブジェクトからデータを取得することができないようです。テーブルに挿入する前に必ずデータを確認してください。

function insert(Request $req) 
{ 

    $this->validate($req, [ 
     'name' => 'required' 
    ]); 

    $name = $req->input('name'); 
    $username = $req->input('username'); 
    $password = $req->input('password'); 

    $data = array("name"=>$name,'username'=>$username,"pw"=>$password); 

    DB::table('academic')->insert($data); 

} 

ところででしょう:

+0

どうすればいいですか? –

2

あなたはそうuは(サーバー側の検証)を挿入する前に、データを検証する必要があり、

<div class="form-group"> 
    <label>Name : *</label> 
    <input type="text" class="form-control" name="name"> 
    </div> 

    <div class="form-group"> 
    <label>Username : *</label> 
    <input type="text" name="username" class="form-control" required> 
    </div> 

    <div class="form-group"> 
    <label>Password : *</label> 
    <input type="password" name="password" class="form-control"> 
    </div> 
+0

残念ながら、このスレッドを編集すると、ユーザー名とパスワードの名前属性が削除されました。今、私はそれを修正しました。 –

2

は、HTMLを更新してください:

あなたがめちゃくちゃにされていますをここ名前属性

<input type="text" name="username" class="form-control" required> 
<input type="password" name="password" class="form-control"> 

コード:

<form action="{{ route('RegShort') }}" method="post" enctype="multipart/form-data"> 

{{ csrf_field() }} 

<div class="form-group"> 
    <label>Name : *</label> 
    <input type="text" class="form-control" name="name"> 
    </div> 

    <div class="form-group"> 
    <label>Username : *</label> 
    <input type="text" name="username" class="form-control" required> 
    </div> 

    <div class="form-group"> 
    <label>Password : *</label> 
    <input type="password" name="password" class="form-control"> 
    </div> 

    <button type="submit" class="btn btn-primary" name="submit">Submit</button> 

</form> 
+0

残念ながら、私はユーザー名とこのスレッドを編集するとパスワードが失われます。今、私はそれを修正しました。 何か、その名前のための助けはヌルエラー?? –

関連する問題