2016-10-14 10 views
0

어떤 이유로 든 양식이 데이터를 데이터베이스에 제출하지 않고 서있는 곳에서 정상적으로 보이며 데이터베이스가 정보를 양식에 올바르게 호출 할 수 있습니다.Laravel 양식이 데이터베이스에 데이터를 제출하지 않음

사람들이 제출해야 할 정보가 많기 때문에 프로필 세부 정보를 로그인 프로세스에 포함시키지 않을 것입니다. 아직도 Laravel이이 작업을 수행하는 방법에 익숙하지 않지만, 지금 내가 조롱하고있는 과정을 대략 거쳐야합니다.

내가 궁금해하는 한가지는 양식에 데이터베이스에 쓰는 특정 구문이 있습니까? 양식에 데이터베이스의 각 테이블 이름을 지정해야합니까? 아니면 컨트롤러의 일부입니까?

나는 바인딩 양식 모델을 이용해야 하는가? Laravel의 최신 버전에 대한 정보를 찾는 것이 조금 어렵습니다.

무엇이 누락 되었습니까?

//Route::get('NewUser', '[email protected]'); 
Route::post('NewUser', '[email protected]'); 
//Route::get('NewUser', '[email protected]')->name('NewUser'); 
Route::post('NewUser', '[email protected]')->name('submit'); 

컨트롤러 :

<?php 

namespace App\Http\Controllers; 

use App\UserEdit; 
use Illuminate\Http\Request; 
use DB; 
use App\Http\Requests; 

class UserEntryController extends Controller 
{ 

    protected function create() 
    { 
     $id = UserEdit::find(715)->toArray(); 
     return view('NewUser', compact('id')); 
     //return $array; 
    } 

    public function UserForm(Request $request) { 
     $email = $request['email']; 
     $first_name = $request['first_name']; 
     $password_hint = $request['password_hint']; 
     $last_name = $request['last_name']; 

     $user = UserEdit::find(715)->first(); 
     $user->email = $email; 
     $user->First_Name = $first_name; 
     $user->Last_Name = $last_name; 
     $user->Password_Hint = $password_hint; 

     $user->save(); 

     $id = UserEdit::find(715)->toArray(); 
     return view('NewUser', compact('id')); 
    } 

} 

블레이드 :

@extends('layout') 


@section('content') 
    <h1> Add Your Information {{ $id['name'] }}</h1> 
    <div class="row"> 
     <div class="col-md-6"> 
      <h3>Edit</h3> 
      <form action="{{ route('submit') }}" method="post"> 
       <div class="form-group"> 
       {{ csrf_field() }} 
        <label for="email">Your E-Mail</label> 
        <input class="form-control" type="text" name="email" id="email"> 
       </div> 
       <div class="form-group"> 
       {{ csrf_field() }} 
        <label for="first_name">Your First Name</label> 
        <input class="form-control" type="text" name="first_name" id="first_name"> 
       </div> 
       <div class="form-group"> 
       {{ csrf_field() }} 
        <label for="last_name">Your Last Name</label> 
        <input class="form-control" type="text" name="last_name" id="last_name"> 
       </div> 
       <div class="form-group"> 
       {{ csrf_field() }} 
        <label for="password_hint">Your Password Hint</label> 
        <input class="form-control" type="text" name="password_hint" id="password_hint"> 
       </div> 
       <button type="submit" class="btn btn-primary">Submit</button> 
       <input type="hidden" name="_token" value="{{ Session::token() }}"> 
      </form> 
     </div> 
    </div> 

    @foreach ($id as $key=>$value) 
     {{ $value }}<br> 
    @endforeach 
@stop 

답변

1

대신 $request['email']$request->get('email')하고 요청에서 원하는 다른 모든 것들에 대해 동일한을 사용해야합니다, 나는 생각하지 않는다 사용하는 경우 ->first()을 사용해야합니다. ->find

1

폼에 5 개의 csrf 필드가 있으므로 _token 필드에 문제가있을 수 있습니다.

는이 라인을

<input type="hidden" name="_token" value="{{ Session::token() }}"> 

를 제거하고 단지 형태로 한 {{csrf_field()}} 떠나보십시오.

관련 문제