路由到控制器问题

时间:2017-01-27 08:27:36

标签: php laravel

我目前正在学习laravel和我的小项目,现在我遇到了一些小问题。

我正在尝试在url中处理php输入,即http://example.com/?page=post&id=1
我目前在我的控制器中有post.blade.php

public function post($Request $request) 
{
  $page = $request->input('page');
  $id_rilisan = $request->input('id');
  $post = Rilisan::where('id_rilisan', '=', $id_rilisan)->first();
  if($post = null)
  {
    return view('errors.404');
  }
  return view('html.post')
          ->with('post', $post);
}

这是控制器

Route::get('/', 'TestController@index');
Route::get('/{query}', 'TestController@post' );

如何处理要输出到控制器的php输入?我现在很困惑,我为Route :: get

尝试了其他几种方法

3 个答案:

答案 0 :(得分:1)

此路线Route::get('/', 'TestController@index')将用户引导至index路线。因此,如果您无法更改网址结构并且必须使用此结构,则应在index路由中获取此类网址的参数:

public function index()
{
    $page = request('page');
    $id = request('id');

答案 1 :(得分:0)

您可以在控制器上使用它作为参数:-)请参阅此答案:https://laravel.io/forum/07-26-2014-routing-passing-parameters-to-controller

例如路由中的查询参数将是控制器方法中的$ query参数: - )

所以这样:

Route::get('/{query}', 'TestController@post' );
//controller function
public function controllerfunc($query){}

答案 2 :(得分:0)

为什么需要在url中使用查询参数。您只需使用此结构http://example.com/posts/1

即可

然后您的路线将如下所示:

Route::get('/posts/{post}', 'PostsController@show');

您可以在show方法中立即访问Post模型。 例如:

public function show(Post $post) {
    return view('html.post', compact('post'));
}

看看你的代码现在有多小。