Slim:1个url的多个GET名称

时间:2016-11-22 03:34:51

标签: php eloquent twig slim

我正在尝试使用twig,slim和eloquent在我的网站中添加视频部分。现在,这就是我对我的观看路线的看法。页

<?php

$app->get('/watch/:series/:episode', function($series, $episode) use($app){
    $video = $app->video->where('series', $series)->where('episode', $episode)->first();
    $app->render('videos/watch.php', [
        'video' => $video
    ]);
})->name('videos.watch');

现在我想要做的还有它,如果他们没有指定剧集编号(即输入&#39; watch / seriesName /&#39;),它默认为最低的剧集编号。我的数据库结构是&#39; id&#39;,&#39; title&#39;,&#39; series&#39;,&#39; episode&#39; (这一切对这个问题非常重要)。

在提出这个问题时,我实际上已经弄明白了。我将回答我自己的问题,以便其他可能遇到同样问题的人可能知道我做了什么。

这是我的视频课,以防万一有人对如何利用我的视频课程感兴趣(不确定这是处理视频的最佳方式,但它有效)

<?php

namespace BiosystemStudios\Video;

use Illuminate\Database\Eloquent\Model as Eloquent;
use JBBCode\Parser;
use JBBCode\DefaultCodeDefinitionSet;

class Video extends Eloquent
{
    protected $table = 'content_video';

    protected $fillable = [
        'title',
        'series',
        'episode',
        'location',
        'description',
        'category',
        'is_youtube',
        'youtube_link',
        'views'
    ];

    public function getTitle()
    {
        return $this->title;
    }

    public function getDescription()
    {
        $parser = new Parser();
        $parser->addCodeDefinitionSet(new DefaultCodeDefinitionSet());
        $text = $this->description;
        $parser->parse($text);
        return $parser->getAsHtml();
    }

    public function getLocation()
    {
        return $this->location;
    }

1 个答案:

答案 0 :(得分:0)

将第一个获取请求重命名为&#34; videos.watch.episode&#34;然后创建此获取请求:

$app->get('/watch/:series/', function($series) use($app){
    $video = $app->video->where('series', $series)->first();
    $app->render('videos/watch.php', [
        'video' => $video
    ]);
})->name('videos.watch');