2017-08-31 100 views
0

我有几个表单用不同的验证规则创建不同的记录。Laravel创建新记录错误

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

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

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

    Route::get('/home/info/create/{id}', '[email protected]'); 
    Route::post('/home', '[email protected]')->name('home'); 
    Route::get('/home/info/delete/{id}', '[email protected]'); 

    Route::get('/home/odbor/create/{id}', '[email protected]'); 
    Route::post('/home', '[email protected]')->name('home'); 
    Route::get('/home/odbor/delete/{id}', '[email protected]'); 


    Route::get('/home/zamestnanec/create/{id}', '[email protected]'); 
    Route::post('/home', '[email protected]')->name('home'); 
    Route::get('/home/zamestnanec/delete/{id}', '[email protected]'); 

    Route::get('/home/program/create/{id}', '[email protected]'); 
    Route::post('/home', '[email protected]')->name('home'); 
    Route::get('/home/program/delete/{id}', '[email protected]'); 
}); 

科瑞,存储,删除功能: (功能呈三角在所有控制器)

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

而且问题是,当我想创建新的例如触摸submite按钮后,信息(/ 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' 
    ]; 

} 

但是这一个: CreateProgramRequest.php

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

    ]; 

} 

回答

1

您应该尝试以下更改:

认沽路线为:

Route::post('/home/info/store', '[email protected]')->name('infoStore'); 

因为你所创造的一切同一职位的路线相反的

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

所以只是改变路线,并尝试它可能解决您的问题。

+0

谢谢,我在Form :: open中编辑所有Route :: post和所有'url'。它正在运行 – Bando

+0

@Bando很高兴帮助! –

+0

@Bando如果我的答案是你的解决方案,那么请upvote到我的答案 –