【问题标题】:Why is input data not being sent to the controller after submit?[LARAVEL]为什么提交后输入数据没有发送到控制器?[LARAVEL]
【发布时间】:2019-09-10 15:48:30
【问题描述】:

我已经在其他主题中寻找过相同的问题,但大多数问题都在模型($fillable)或表单“名称”属性中。我认为问题出在我的 .当我提交时,值不会发送到控制器。

型号

namespace App\Models;

use Illuminate\Database\Eloquent\Model as Eloquent;

class ContactCli extends Eloquent
{
    protected $fillable = ['name', 'email', 'phone', 'message', 'subject'];

    protected $table = 'contact_clis';
}

控制器

public function contactUSPost(Request $request){

        $contact = new ContactCli();

        $contact->name = $request->input('name');
        $contact->email = $request->input('email');
        $contact->phone = $request->input('phone');
        $contact->subject = $request->input('subject');
        $contact->message = $request->input('message');

        //dd($contact);
        $contact->save();
         return redirect()->babck()->with('success', 'Thanks for contacting us!');
}

路线

Route::group(['prefix' => '/', 'namespace' => 'Cms'], function(){

    Route::post('home', 'PagesController@contactUSPost')->name('contactus.store');
});

为了减少代码,我只会输入“名称”。 表格

<form name="sentMessage" class="text-white" id="contactForm" method="POST" action="{{route('contactus.store')}}" novalidate="novalidate" >

        {{ csrf_field() }}
          <div class="control-group">
            <div class="form-group floating-label-form-group controls mb-0 pb-2">
              <label>Nome</label>
              <input class="form-control bg-secondary text-white" id="name" type="text" placeholder="Nome" required="required" data-validation-required-message="Please enter your name." autocomplete="off">
              <p class="help-block text-danger"></p>
            </div>
          </div>

          <div class="form-group">
            <button type="submit" class="btn btn-primary btn-xl" id="sendMessageButton">Enviar</button>
          </div>
          </form>
</form>

当运行 dd()

ContactCli {#598 ▼
  #fillable: array:5 [▼
    0 => "name"
    1 => "email"
    2 => "phone"
    3 => "message"
    4 => "subject"
  ]
  #table: "contact_clis"
  #connection: null
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: false
  +wasRecentlyCreated: false
  #attributes: array:5 [▼
    "name" => null
    "email" => null
    "phone" => null
    "subject" => null
    "message" => null
  ]
  #original: []
  #changes: []
  #casts: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  #hidden: []
  #visible: []
  #guarded: array:1 [▶]
}

所以,我得到的错误是:

SQLSTATE[23000]:违反完整性约束:1048 列“名称” 不能为空(SQL:插入contact_clisnameemailphone, subject, message, updated_at, created_at) 值 (, , , , , 2019-09-10 12:46:55, 2019-09-10 12:46:55))

从表单发送的值被发送为空。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您缺少输入字段中的主要属性,即名称属性。没有这个,您将无法通过表单发送数据。

    &lt;input class="form-control" id="name" type="text" name="name" required="required" &gt;

    【讨论】:

    • 我昨晚真的在找这个。我将 id 属性与 name 属性混淆了。感谢关注!
    猜你喜欢
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 2017-03-11
    • 2020-08-14
    • 2016-06-05
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多