url的一部分如何用作Laravel5.3中的控制器的变量



使用 Laravel 5.3,我正在尝试将我的部分 url 动态传递到控制器函数中,但到目前为止没有运气。当在页面上单击链接 http://127.0.0.1:8000 时,该 URL 将变为 http://127.0.0.1:8000/politics。如何将政治部分传递到控制器函数中?以下是我在我的

网络.php路由文件

Route::get('/{$category}', 'PostController@category');

后控制器.php文件

public function category($category)
{
    $tag = $category;
    $posts = Post::where('tag', '=', '{tag}');
    return view('post', compact('posts'));
}

PHP工匠修补匠

Psy Shell v0.8.1 (PHP 5.6.16 ΓÇö cli) by Justin Hileman
>>> $tag = 'politics'
=> "politics"
>>> $post = AppPost::where('tag', '=', '{tag}')->get();
=> IlluminateDatabaseEloquentCollection {#671
     all: [],
   }
>>>

因此,在查看代码并在本地将小型演示放在一起之后,只有一个小原因可以解释为什么会失败。

{varName}变量已经被识别为变量,因此您不需要像现在这样将其定义为$varName{$category}

下面的代码应该给你一个工作的例子:

创建一个名为 DemoController 的控制器。

在此文件中放置以下内容:

public function demo($category) 
{
    dd($category); 
}

在您的routesweb.php路由文件中添加以下行"

Route::get('/mena/{category}', 'DemoController@demo');

现在,当您转到www.website.com/mena/politics时,您应该看到它politics打印到屏幕上。

最新更新