【问题标题】:passing two parameter in form cant seem to figue out在表单中传递两个参数似乎无法弄清楚
【发布时间】:2015-03-24 14:43:28
【问题描述】:

基本上我有一个事件 ID 和用户 ID 我需要在表单中传递以存储...但是当我点击创建时它会出现

路由模式“/roles/{id}/{{id}}”不能多次引用变量名“id”。

但是,如果我在 URL 栏中按 Enter 键,它会起作用...所以不确定这里发生了什么...这里的代码会很有帮助。

路由文件

// POST Add Users Race
Route::post('racehistory/{event_id}/store/{user_id}/race/', 'racehistoryController@store'); 

// GET Current Races
Route::get('events/currentRace', 'racingeventController@viewCurrentRace');

// GET Users 
Route::get('events/{event_id}/users', 'racingeventController@users');

// GET Users with Group ID
Route::get('events/{event_id}/{group_id}', 'racingeventController@grouped');

// GET Add Users Race Form
Route::get('events/{event_id}/user/{user_id}/addrace', 'racingeventController@addUserRace');

// Add User to Event
Route::get('events/{event_id}/user/{user_id}', 'racingeventController@addUserToEvent');

// DELETE Remove User from Race Event
Route::get('events/{event_id}/delete/user/{user_id}', 'racingeventController@deleteUserToEvent');

// DELETE Race Event
Route::get('events/delete/{event_id}', 'racingeventController@destroy');

Route::resource('events', 'racingeventController');

表单视图

{{ Form::open(array('class' => 'form-horizontal', 'method' => 'post', 'action' => array('racehistoryController@store', $user->id, $event->id))) }}

控制器 - racehistoryController

public function store($event_id, $user_id)
{
    $rules = array(
        'start_event'   => 'required',
        'end_event'     => 'required',
        'pool_type'     => 'required|max:3|min:3',
        'name'          => 'required|max:35|min:3',
        'location'      => 'required|max:35|min:3',
    );

    $validator = Validator::make(Input::all(), $rules);

    if ($validator->fails()) {
        return 'form works';
    }
}

【问题讨论】:

  • 给出整个路由文件。您不止一次引用一个参数。

标签: php forms laravel parameters


【解决方案1】:
  1. 命名您的路线:
Route::get(
    'racehistory/{event_id}/store/{user_id}/race/',
    ['as' => 'store', 'uses' => 'racehistoryControlle@store']
); 
  1. 修复Form::open()助手:
{{ 
    Form::open([
        'class' => 'form-horizontal', 
        'method' => 'post', 
        'route' => ['store', $user->id, $event->id]
    ]) 
}}

【讨论】:

  • 啊,是的...我将溃败更改为发布而不是获取??? ...我意识到我发布它没有得到
  • @levilucas 你的英文很差,写cmets的时候尽量注意拼写。
  • 抱歉,我知道这是一个坏习惯,但我设法做到了上述情况并将路线更改为帖子而不是获取,现在它似乎很好......查看我的路线文件会你说这是正确的方法,因为我觉得一旦我深入了解我正在制作的应用程序,就会以这种速度有很多路线?
  • 对我来说似乎没问题,但您仍然可以通过使用路由组来改进它:laravel.com/docs/5.0/routing#route-groups
猜你喜欢
  • 2011-07-08
  • 2021-06-04
  • 1970-01-01
  • 2014-07-28
  • 2016-03-12
  • 2017-10-24
  • 2017-09-28
  • 2014-05-19
  • 2023-02-11
相关资源
最近更新 更多