Laravel 5.3 如何将url的一部分用作Laravel 5.3中的控制器变量

Laravel 5.3 如何将url的一部分用作Laravel 5.3中的控制器变量,laravel-5.3,Laravel 5.3,在使用Laravel5.3时,我尝试将我的url的一部分动态地传递到控制器函数中,但到目前为止运气不佳。当在页面上单击链接时,url变为。如何将政治部分传递到控制器功能中?下面是我的电脑里的东西 php路由文件 Route::get('/{$category}', 'PostController@category'); PostController.php文件 public function category($category) { $tag = $category; $p

在使用Laravel5.3时,我尝试将我的url的一部分动态地传递到控制器函数中,但到目前为止运气不佳。当在页面上单击链接时,url变为。如何将政治部分传递到控制器功能中?下面是我的电脑里的东西

php路由文件

Route::get('/{$category}', 'PostController@category');
PostController.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 = App\Post::where('tag', '=', '{tag}')->get();
=> Illuminate\Database\Eloquent\Collection {#671
     all: [],
   }
>>>

因此,在检查代码并在本地组装一个小型演示之后,这失败的原因只有一个

{varName}
变量已被识别为变量,因此您无需像当前一样将其定义为
$varName
{$category}

以下代码应为您提供一个工作示例:

创建名为
DemoController
的控制器

在该文件中放入以下内容:

public function demo($category) 
{
    dd($category); 
}
routes\web.php
route文件中添加以下行“

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


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

只是为了调试,
Post::where('tag','=','politics');
是否返回任何内容?是的,它会按预期返回带有该标记的帖子,因此您可以执行
Post::where('tag','=','tag,$tag)
?现在查询工作正常,但我仍然无法将url动态传递到控制器。我不知道为什么,我使用的代码几乎完全相同,而且工作正常。如果你使用dd($POST),你的应用程序会得到什么而不是返回?非常感谢您的时间和耐心。代码已被更正,问题已在@Mena任何时候解决