Laravel 5.3 如何将url的一部分用作Laravel 5.3中的控制器变量
在使用Laravel5.3时,我尝试将我的url的一部分动态地传递到控制器函数中,但到目前为止运气不佳。当在页面上单击链接时,url变为。如何将政治部分传递到控制器功能中?下面是我的电脑里的东西 php路由文件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
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任何时候解决