在laravel中的link_to_action中使用store函数

时间:2014-06-02 03:23:36

标签: laravel blade

您好我正在尝试通过使用link_to_action将参数传递给它来使用存储函数,但每当我这样做时,似乎只是转到索引(并继续显示任何内容,因为我的索引函数对于此控制器是空的。

{{ link_to_action('ApplicationController@store', 'Apply', $ids = array(Auth::user()->id => 'user_id',$job->id=>'job_id'))

是我正在使用的link_to_Action我只是缺少一些东西或是否有其他我需要添加的东西我知道它会转到索引函数,因为如果我在那里放置一些东西它会跟着那个

编辑: 路线贬值

Route::get('job/allJobs', array('as' => 'job.allJobs', 'uses' => 

'JobController@allJobs'));
Route::post('job/search', array('as' => 'job.search', 'uses' => 'JobController@search'));
Route::get('job/searchForm', array('as' => 'job.searchForm', 'uses' => 'JobController@searchForm'));
Route::get('user/allUsers', array('as' => 'user.allUsers', 'uses' => 'UserController@allUsers'));
Route::post('user/login', array('as' => 'user.login', 'uses' => 'UserController@login'));
Route::get('user/logout', array('as' => 'user.logout', 'uses' => 'UserController@logout'));
Route::resource('user', 'UserController');
Route::resource('job', 'JobController');
Route::resource('application', 'ApplicationController');

控制器删除

public function store()
{
    $ids = Ids::all();
$application = new Application;
$application->user_id = $ids->user_id;
$application->job_id = $ids->job_id;
$application->save();
return Redirect::route('user.index');
}

编辑2:因为我没有弄清楚为什么它不起作用我使用了一种迂回的方式来实现相同的结果创建一个带有隐藏元素的表单并使用默认值用正确的数据填充它们如下: / p>

{{ Form::open(array('action' => 'application.store')) }}
        {{Form::hidden('user_id',Auth::user()->id)}}
        {{Form::hidden('job_id',$job->id)}}
        {{Form::submit('Apply')}}
        {{Form::close()}}

虽然是狼人,但我仍然希望得到你的建议

1 个答案:

答案 0 :(得分:0)

你可以试试这个(假设它不是resourceful controller$job在范围内):

{{ link_to_action(
        'ApplicationController@store',
        'Apply',
        array('user_id' => Auth::user()->id, 'job_id' => $job->id)
    )
}}

更新:此处有resourceful controller;

Route::resource('application', 'ApplicationController');

因此,您不能只使用GET请求来调用store方法。您需要使用POST提交FORM请求(也可以使用AJAX)。 URI应为:

// Use method = 'POST'
http://yourdomain/application

因此,生成form并使用表单字段传递参数,例如:

{{ Form::open(array('url' => 'application', 'method' => 'post')) }}
    {{ Form::hidden('user_id', Auth::user()->id) }}
    {{ Form::hidden('job_id', $job->id) }}
    {{ Form::submit('Apply') }}
{{ Form::close() }}

如果您提交此表单,则会调用store方法。有关详情,请查看Laravel网站上的Resource Controllers