如何在从路径传递到页面时处理laravel中的两个参数

时间:2015-08-06 04:16:03

标签: laravel laravel-4 laravel-5 laravel-routing

我正在通过以下两条路线

Route::get('library/course/{id}', function($id){
    return View::make('course')->with('id',$id);
});

Route::get('library/course/{id}/{video}', function($id, $video){
    $array = array('id' => '$id', 'video' => '$video');
    return View::make('course')->withvideos($array);
});

这两条路线都正常工作,但只是逐一进入course.blade.php页面。如果我删除第一条路线的内容然后第二条路线工作,否则它给我一个错误。我如何在页面上处理这两条路线?

******修订版

我的课程页面的代码如下。 请注意,我正在使用此页面中的第一条路线。我无法使用秒,因为它会出错。

@extends('layouts.master')

@section('content')



    <div class="row" style="margin-top: 5%;">
        <div class="large-4 columns">
            <?php $coursesName = DB::table('topics')->select('title')->get(); ?>
            <ul class="side-nav">
                @foreach($coursesName as $courseName)
                <li><a href="#">{{ $courseName->title }}</a></li>
                @endforeach
            </ul>
        </div>
        <div class="large-8 columns" data-equilizer>
            <?php $courseViews = DB::table('courses')->whereid($id)->get();  ?>

            @foreach($courseViews as $courseView)

                <?php $requiredId = $courseView->id; ?>

                <?php  $courseVideos = DB::table('videos')->whereid($requiredId)->get(); ?>

                @foreach($courseVideos as $courseVideo)
                    <!--<iframe src="https://player.vimeo.com/video/{{ $courseVideo->link }}?color=ff9933&title=0&byline=0&portrait=0' width='700' height='400' frameborder='0' webkitallowfullscreen mozallowfullscreen allowfullscreen"></iframe>-->
                    <br>
                    <a href="{{ $courseView->id }}/{{ $courseVideo->id }}">{{ $courseVideo->name }}</a>
                @endforeach

            @endforeach


        </div>



    </div>
@stop

2 个答案:

答案 0 :(得分:0)

如果认为您的错误在此处:$array = array('id' => '$id', 'video' => '$video');

当你写'$id'时,它会分配一个字符串,而不是使用变量的内容。

尝试按$array = array('id' => $id, 'video' => $video);

更改此行

注意:如果使用PHP 5.4 +

,则可以使用[]代替array()

答案 1 :(得分:0)

作为@Romain Lanz,我还想提一下你是否写这样的路线

Route::get('library/course/{id}', function($id){
    return View::make('course')->with('id',$id);
});

Route::get('library/course/{id}/{video}', function($id, $video){
    $array = array('id' => '$id', 'video' => '$video');
    return View::make('course')->withvideos($array);
});
  

它总是匹配 'library/course/{id}'   的 'library/course/{id}/{video}'

你应该写这样的路线

Route::get('library/course/{id}/{video}', function($id, $video){
    $array = array('id' => $id, 'video' => $video);//Also change your array value
    return View::make('course')->withvideos($array);
});

Route::get('library/course/{id}', function($id){
    return View::make('course')->with('id',$id);
});