将变量从刀片传递到路由并从那里传递到另一个路径

时间:2015-01-05 12:31:24

标签: laravel blade laravel-routing

我知道必须有比我想象的更简单的方式,所以我要问这里。

我想从此处传递$exam->id(当您点击开始测试时)

@foreach($category->exams as $exam)
    <tr>
        <td>{{$exam->id}}</td>
        <td>{{$exam->title}}</td>
        <td>od {{$exam->start_date}} do {{$exam->end_date}}</td>
        <td class="center"><span class="badge">{{$exam->number_of_points}}</span></td>
        <td class="center"><a href="#"><i class="fa fa-arrow-circle-right"></i> Start test</a></td>
    </tr>
@endforeach()

这应使用此路由并传递该变量

 Route::get('exam','ExamController@create'); // this is where i dont know how to set route to pass to another one

ExamController

 public function create() {

    return View::make('exam.index');
}

并且当用户点击提交时,它会将$ exam_id发送到ajax以显示该检查

{{ Form::open(['data-remote', 'method' => 'GET', 'route' => ['exam_data',$exam_id]]) }}
    <div class="exam-name">
    </div>

    <div class="form-group exam">   
        Click Start to start the test!
   </div>

    <div class="form-group">

        {{ Form::submit('Start', ['class' => 'btn btn-default','id'=>'btn-next-question', 'data-confirm']) }}

   </div>

 {{Form::close()}}

提交按钮的路线

Route::get('exam/{id}',['as' => 'exam_data', 'uses' => 'ExamController@getExambyNumber']);

当我在该表单上放置1个随机考试ID号而不是$exam_id时,一切正常,我不知道如何通过它。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我首先想到了我所做的是更改Start Test以将数组传递给Route

 <td class="center"><a href="{{ URL::route('exam_id', array('id'=>$exam->id)) }}"><i   class="fa fa-arrow-circle-right"></i> Start Test</a></td>

考试路线

Route::get('exam',['as' => 'exam_id', 'uses' => 'ExamController@create']);

在控制器中看起来像

public function create()
{

   $exam_id = Input::get('id');
   return View::make('exam.index', array('exam_id' => $exam_id));
}

其余的代码是一样的。