2016-12-29 1 views
2

私はLaravelの新作です。私はこの問題に遭遇しています。 登録システムはうまくいきましたが、今ではテーブルに新しいフィールドを追加したいと思っていました(ユーザーのための説明フィールド)。 しかし、この説明フィールドは、ユーザーがサインアップしたときに埋められたくないので、プロファイルに乗ってモーダルウィンドウを更新するときにユーザーに入力してもらいたいです。テーブルの列は後で埋められます

問題は、私が空欄にしておけば、申し立て内容を空にすることができないという申し込みをするとエラーになります。

これは私が私のUserControllerで説明フィールドを更新するために使用するものですが、正しいかどうかはわかりません。

public function postDesc(Request $request){ 
    $this->validate($request, [ 
    'description' => 'required|min:20' 
    ]); 
    $user = User::all(); 
    $user->description = $request->input('description'); 
    $user->save(); 
    return redirect()->route('user.profile.edit'); 
} 

これは、私は、フォームを開いた方法である: {!! Form::open(['method' => 'PUT', 'action' => '[email protected]', 'class' => 'profile-form']) !!}

+0

([ '記述' => '必須|分:20' ] $要求)の$ this - >検証を削除します。 –

答えて

0

あなたはrequired検証ルールを使用し、あなたがメッセージを取得する理由、それはです。登録ページとプロファイルの更新フォームには、異なる検証規則を使用する必要があります。

create two Request classesを実行し、2つの形式の検証に使用することをお勧めします。

+0

さて、私はちょうどそれについて学んだ、ありがとう。私は2つのリクエストクラスを設定してユーザーを登録し、もう1つは説明を保存します。しかし、私はまだサインアップした後でも、「説明」にデフォルト値がありません。 –

+0

@OvidiuGこれはDB関連のエラーです。マイグレーションファイルの 'description'カラム定義に' - > nullable() 'または' - > default( 'No description') 'を追加してください。 –

+0

はい、私はそれを考え出しました。今それは動作します。私は上記の方法で書かれているので、 'description'フィールドを更新する方法を理解する必要があります。 –

0

このシナリオでは、説明列をnullalbe()にすることをお勧めします。したがって、申し込み時に説明フィールドが空であるというエラーは発生しません。

また、説明フィールドを更新することもできます。

public function postDesc(Request $request) 
{ 
    $this->validate($request, [ 
    'description' => 'required|min:20' 
    ]); 

    // Get the logged in user id using auth and then updating description filed 
    $user = User::where('user_id', Auth::id()) 
       ->update([ 
       'description' => $request->description 
       ]); 

    return redirect()->route('user.profile.edit'); 
} 
関連する問題