2017-01-27 6 views
1

私は現在laravelと私の小規模なプロジェクトを勉強していますが、今は少し問題があります。コントローラの問題

私は現在、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('/', '[email protected]'); 
Route::get('/{query}', '[email protected]'); 

であるため、私のコントローラでこれを持ってhttp://example.com/?page=post&id=1
すなわちURLでPHPの入力を処理しようとしていますどのようにコントローラにルーティングされるPHP入力を処理するには?私は::あなたがこの答えをご覧下さい:-)あなたのコントローラ上のパラメータとして使用することができます

答えて

1

このルートRoute::get('/', '[email protected]')indexルートにユーザーを誘導します。あなたはURL構造を変更することはできませんし、この構造を使用しなければならないのであれば、あなたは、このようなindexルートにURLパラメータを取得する必要があります:

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

他のRoute :: getは必要ありませんか? – nothingexceptme

+0

@nothingexceptme使用しない場合は削除できます。 2番目のルートは '/ some-string'のようなURIを捕捉します –

0

入手ルートのためのいくつかの他の方法を試してみた、今非常に混乱しています:https://laravel.io/forum/07-26-2014-routing-passing-parameters-to-controller例えば

ルート内のクエリパラメータには、このようなので、

:-)コントローラメソッドで$クエリパラメータのようになります。

Route::get('/{query}', '[email protected]'); 
//controller function 
public function controllerfunc($query){} 
0

を使用すると、URLのクエリパラメータを使用する必要がなぜ。あなたは、単にあなたのルートは次のようになります。そして、この構造http://example.com/posts/1

を使用することができます。

Route::get('/posts/{post}', '[email protected]'); 

そして、あなたはあなたのショー方法で瞬時にPostモデルにアクセスすることができます。 例:

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

ここであなたのコードはどれくらい小さいか見てください。

+0

提案してくれてありがとうございますが、そのようにしたいのですが、関数はデータベースからデータを取得する必要があります – nothingexceptme

+0

これもデータベースから取得しています。投稿モデルは、データベースから必要なものすべてを取得します。 – zgabievi

関連する問題