使用Laravel 5.3,我试图动态地将部分网址传递给控制器函数,但目前还没有运气。在http://127.0.0.1:8000页面上点击链接后,网址将变为http://127.0.0.1:8000/politics。如何将政治部分传递给我的控制器功能?以下是我的
web.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 artisan tinker
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: [],
}
>>>
答案 0 :(得分:1)
因此,在查看代码并在本地放置一个小型演示之后,只有一个次要原因导致失败的原因。
{varName}
个变量已被识别为变量,因此您无需像当前那样将其定义为$varName
({$category}
)
以下代码应该为您提供一个工作示例:
创建一个名为DemoController
的控制器。
在此文件中输入以下内容:
public function demo($category)
{
dd($category);
}
在routes\web.php
路径文件中添加以下行"
Route::get('/mena/{category}', 'DemoController@demo');
现在,当您转到www.website.com/mena/politics
时,您会看到它在屏幕上显示politics
。