【问题标题】:Laravel create new records errorLaravel 创建新记录错误
【发布时间】:2018-02-09 10:13:05
【问题描述】:

我有几个表单用于创建具有不同验证规则的不同记录。

我的路线(web.php)文件:

Route::group(['middleware' => ['auth']], function () {

  Route::get('/home', 'HomeController@index')->name('home');

  Route::get('/home/info/create/{id}', 'InfoController@create');
  Route::post('/home', 'InfoController@store')->name('home');
  Route::get('/home/info/delete/{id}', 'InfoController@delete');

  Route::get('/home/odbor/create/{id}', 'OdborController@create');
  Route::post('/home', 'OdborController@store')->name('home');
  Route::get('/home/odbor/delete/{id}', 'OdborController@delete');


  Route::get('/home/zamestnanec/create/{id}', 'ZamestnanecController@create');
  Route::post('/home', 'ZamestnanecController@store')->name('home');
  Route::get('/home/zamestnanec/delete/{id}', 'ZamestnanecController@delete');

  Route::get('/home/program/create/{id}', 'ProgramController@create');
  Route::post('/home', 'ProgramController@store')->name('home');
  Route::get('/home/program/delete/{id}', 'ProgramController@delete');
});

创建、存储、删除功能: (所有控制器功能相似)

public function create(Fakulta $id)
{
    return view('create.info', compact('id'));
}

public function store(CreateInfoRequest $request)
{

    Info::create($request->all());

    return redirect('home');
}

public function delete($id)
{
    Info::where('id',$id)->delete();
    return redirect('home');
}

问题是,当我想创建新的例如触摸提交按钮后的信息(/home/info/create)我收到验证错误。验证时使用中间件组(ProgramController@store)中最后一个控制器中指定的文件,我不知道为什么。但是当我移动 Route::post('/home', 'InfoController@store')->name('home');在组的最后一行或创建新程序(/home/program/create)一切正常。

更简单:

触摸提交按钮后不使用此文件

CreateInfoRequest.php 文件:

public function rules()
{
    return [
        'title' => 'required',
        'description' => 'required',
        'event_date' => 'required|date|after:today'
    ];

}

但是这个: 创建程序请求.php

   public function rules()
{
    return [
        'title' => 'required',
        'titul' => 'required',
        'length' => 'required',
        'forma' => 'required',
        'typ'=> 'required',
        'description' => 'required',
        'fakulta_id'  => 'required',

    ];

}

【问题讨论】:

    标签: laravel laravel-5.4


    【解决方案1】:

    您应该尝试以下更改:

    将路线设为:

    Route::post('/home/info/store', 'InfoController@store')->name('infoStore');
    

    代替

    Route::post('/home', 'InfoController@store')->name('home');
    

    因为您为所有人创建了相同的发布路线,所以只需更改路线并尝试它可能会解决您的问题。

    【讨论】:

    • 谢谢,我编辑了所有 Route::post 和 Form::open 中的所有“url”。它正在运行
    • @Bando 如果我的答案是你的解决方案,那么请支持我的答案
    猜你喜欢
    • 1970-01-01
    • 2019-04-17
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    相关资源
    最近更新 更多