有没有办法用php检查网址中的特定参数?

时间:2018-12-05 08:41:46

标签: javascript php jquery laravel

我正在使用一个名为chatter的程序包,并设法将其包含在自己的帖子中。 现在,我有了一个称为游戏的表,每次创建新游戏时,我还会添加一个讨论讨论。可行。

因此,在单个游戏页面上,我将游戏的详细信息和聊天讨论作为iframe加载。这意味着我现在在HTML中有一个HTML。 用户现在可以使用聊天讨论。

控制器看起来很像这样:

public function show(Game $game)
{
    // We know this is a game
    // Get the category first
    $category = DB::table('chatter_categories')->whereName('Game')->first();

    // Get the discussion
    // A discussion has many post(s)
    $discussion = DB::table('chatter_discussion')->whereChatterCategoryId($category->id)->first();
                                             //dd($chatter_post);
    return view('games.games', ['game' => $game, 'discussion' => $discussion, 'category' => $category]);
}

现在,在我的games.blade中,我有以下内容:

<article id="discussion">
    <iframe id="myiframe" src="/forums/discussion/{{ $category->slug }}/{{ $discussion->slug }}" style="height: 800px; width: 100%;" frameborder="0" />
</article>

Chatter默认页面带有标题,如下图所示:

enter image description here

如果我查看自己创建的游戏,也会看到与该游戏有关的聊天讨论:

enter image description here

问题:如何仅在游戏页面上删除聊天讨论的标题部分?

如果我只是直接将标题ID作为目标

div#chatter_header{ 
    display: none;
}

它将删除标题,但是如果我访问颤振原始前端视图,该标题也将消失。

这是我想到检查当前页面URL和相应样式的时候,但这不起作用。

我的游戏路线如下:

Route::resource('games', 'GameController');

3 个答案:

答案 0 :(得分:2)

如果您使用Laravel,则可以使用URL查询参数:

if ($request->has('forums')) {
    // do stuff here
}

请参见https://laravel.com/docs/5.7/requests#retrieving-input

在模板中,您可以使用:

@if(app('request')->input('forums'))
   <span>Do stuff</span>
@endif 

请参阅:Lumen: get URL parameter in a Blade view

答案 1 :(得分:2)

您可以尝试-

$parse = parse_url('http://domain.local/forums/discussion/game/sidney-game', PHP_URL_PATH);

if (strpos($parse, '/forums/') === 0) {
  // do what needed
}

它将检查路径是否以forums开头。

答案 2 :(得分:0)

尝试这样的事情:

byte[]