簡體   English   中英

Laravel表格不提交數據到數據庫

[英]Laravel form not submitting data to database

出於某種原因,我的表單沒有向數據庫提交任何數據,但是從我站着的地方看起來還不錯,並且數據庫可以將信息調用為表單。

由於有很多信息可供人們提交,因此我使個人資料詳細信息不屬於登錄過程。 仍然不熟悉Laravel的操作方式,但是由於我一直在擺弄,所以我大致了解了該過程。

我想知道的一件事是,是否存在用於寫入數據庫的表單的特定語法,我是否應該在表單中命名數據庫的相應表名? 還是控制器的一部分?

我應該使用表單模型綁定嗎? 不過,要找到有關當前版本的Laravel的信息有些困難。

我想念什么?

//Route::get('NewUser', 'UserEntryController@create');
Route::post('NewUser', 'UserEntryController@UserForm');
//Route::get('NewUser', 'UserEntryController@create')->name('NewUser');
Route::post('NewUser', 'UserEntryController@UserForm')->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

您應該使用$request->get('email')而不是$request['email']並且對請求中的其他所有內容都使用相同的方法,並且我認為您不必在需要時使用->first()使用->find

_token字段可能有問題,因為表單中有五個csrf字段。

嘗試刪除此行

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

並在表單中保留一個{{csrf_field()}}。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM