我知道通过URL传递记录ID通常不是一个好主意,但是我想知道如何避免这种情况:
我的目标是在用户仪表板上列出作业状态,并允许用户调整状态。
我创建我的视图,并使用会话将变量传递给它:
userController.php
public function getdashboard()
{
//reading the user information
$arrPageData['user'] = Sentry::getUser();
//reading the job interviews
$arrPageData['jobInterviews'] = JobInterview::readCurrentInterviews($this->userID);
return View::make('clients.dashboard', $arrPageData);
}
这部分效果很好,我在路由中不使用记录ID。我遍历仪表板视图中的jobInterviews。根据数据库表中列出的状态,我为用户提供选项
查看文件:dashboard.blade.php(代码段)
@foreach ($jobInterviews as $interviews)
@if ($interviews->j == $job->id)
<tbody>
<tr>
<td>
{{$interviews->contact_name}}
@if ($interviews->status == 'interview request accepted')
<a href="#" class="btn btn-danger btn-small" data-toggle="modal" data-target=".mymodal{{ $interviews->interview_id }}">Hire</a>
@elseif ($interviews->status == 'hired')
<button id="complete" class="btn btn-info btn-small">Mark Project Complete</button>
@endif
</td>
<td>{{$interviews->status}} </td>
</tr>
</tbody>
...
我遇到的问题是要完成作业状态更改,我正在调用该方法并传递记录ID:
仍在dashboard.blade.php
<form action="../jobs/offer/{{$interviews->interview_id}}" method="post">
然后通过以下路径进行路由:
Route::post('/jobs/offer/{id}','JobController@jobOffer');
一切都按我想要的方式工作,但是从安全角度来看,我认为我做的并不正确。从迭代过的数组中获取数据时,除了在路由中使用记录ID之外,还有没有更好的方法来调用jobOffer方法并更改状态?
在此先感谢您的帮助。
您可以尝试以下方法:
{{ Form::open(array('action' => array('JobController@jobOffer', $interviews->interview_id))) }}
<!-- Rest of the form fields -->
{{ Form::close() }}
这样,您无需csrf/_method
手动添加输入,默认情况下,您可以METHOD
将其POST
忽略。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句