Laravel不提交数据到数据库 [英] Laravel form not submitting data to database

查看:165
本文介绍了Laravel不提交数据到数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

出于某种原因,我的表单没有向数据库提交任何数据,但是从我所处的位置看起来很好,数据库可以将这些信息调用到表单中。



由于人们需要提交大量信息,因此我将个人资料详细信息作为登录过程的一部分。仍然不熟悉Laravel如何执行这些操作,但现在我大致了解了我一直在摆弄的过程。

有一件事我想知道,是否有特定的表单写入数据库的语法,我是否应该在表单中命名数据库各自的表名?或者是控制器的那部分?



我应该使用表单模型绑定吗?虽然目前版本的Laravel信息很难找到。



我缺少什么?

  //路由:: 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;

使用App\UserEdit;
使用Illuminate \Http\Request;
使用DB;
使用App \Http\Requests;
$ b $ class UserEntryController extends Controller
{

protected function create()
{
$ id = UserEdit :: find(715) - >指定者();
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>添加您的信息{{$ id ['name']}}< / h1>
< div class =row>
< div class =col-md-6>
< h3>编辑< / h3>
< div class =form-group>
{{csrf_field()}}
< label for =email>您的电子邮件< / label>
< input class =form-controltype =textname =emailid =email>
< / div>
< div class =form-group>
{{csrf_field()}}
< label for =first_name>您的名字< / label>
< input class =form-controltype =textname =first_nameid =first_name>
< / div>
< div class =form-group>
{{csrf_field()}}
< label for =last_name>您的姓氏< / label>
< input class =form-controltype =textname =last_nameid =last_name>
< / div>
< div class =form-group>
{{csrf_field()}}
< label for =password_hint>您的密码提示< / label>
< input class =form-controltype =textname =password_hintid =password_hint>
< / div>
< button type =submitclass =btn btn-primary>提交< / button>
< input type =hiddenname =_ tokenvalue ={{Session :: token()}}>
< / form>
< / div>
< / div>

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


解决方案

您应该使用 $ request-> get('email')而不是 $ request ['email'] 而对于你想从请求中得到的所有内容都是一样的,而且我不认为在使用时,你不得不使用 - > first() >找到


For some reason, my form isn't submitting any data to the database, but it looks fine from where I'm standing and the database can call the information to the form fine.

Since there's a lot of information for people to submit, I'm making the profile details not part of the login process. Still unfamiliar with how Laravel does these but I roughly get the process now that I've been fiddling.

One thing I'm wondering, is there a specific syntax for forms to write to the database, should I be naming the database's respective table names in the form? Or is that part of the Controller?

Should I be using Form Model Binding? It's a little hard to find information on that that's for the current version of Laravel though.

What am I missing?

//Route::get('NewUser', 'UserEntryController@create');
Route::post('NewUser', 'UserEntryController@UserForm');
//Route::get('NewUser', 'UserEntryController@create')->name('NewUser');
Route::post('NewUser', 'UserEntryController@UserForm')->name('submit');

Controller:

<?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'));
    }

}

Blade:

@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

解决方案

You should use $request->get('email') instead of $request['email'] and the same for everything else you want from the request, and I don't think you have to use ->first() when using ->find

这篇关于Laravel不提交数据到数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆