2016-08-16 8 views
1

私はシステム内の 'チケット'を操作するための私の機能を保持する 'TicketController'を持っています。 私はチケットを見るために{id}のルートパラメータを私のTicketControllerに送る新しいルートを送信する最良の方法を考えています。ここでlaravel 5.2のコントローラークロージャへの入力

Route::group(['middleware' => 'auth', 'prefix' => 'tickets'], function(){ 

    Route::get('/', '[email protected]'); 
    Route::get('/new', function(){ 
     return view('tickets.new'); 
    }); 
    Route::post('/new/post', '[email protected]'); 
    Route::get('/new/post', function(){ 
     return view('tickets.new'); 
    }); 
    Route::get('/view/{id}', function($id){ 
     // I would like to ideally call my TicketController here 
    }); 
}); 

を設定ここで

は私のルートである私のチケットコントローラ

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Ticket; 
use App\User; 

class TicketController extends Controller 
{ 
    public function __construct() 
    { 
     $this->middleware('auth'); 
    } 

    /** 
    * Returns active tickets for the currently logged in user 
    * @return \Illuminate\Http\Response 
    */ 
    public function userGetTicketsIndex() 
    { 
     $currentuser = \Auth::id(); 
     $tickets = Ticket::where('user_id', $currentuser) 
      ->orderBy('updated_at', 'desc') 
      ->paginate(10); 
     return view('tickets.index')->with('tickets', $tickets); 
    } 

    public function userGetTicketActiveAmount() 
    { 
     $currentuser = \Auth::id(); 
    } 

    public function addNewTicket(Request $request) 
    { 
     $this->validate($request,[ 
      'Subject' => 'required|max:255', 
      'Message' => 'required|max:1000', 
     ]); 
     $currentuser = \Auth::id(); 
     $ticket = new Ticket; 
     $ticket->user_id = $currentuser; 
     $ticket->subject = $request->Subject; 
     $ticket->comment = $request->Message; 
     $ticket->status = '1'; 
     $ticket->save(); 
    } 

public function viewTicketDetails() 
{ 
    //retrieve ticket details here 
{ 

} 

答えて

1

はあなたがここにクロージャを使用する必要はありませんです。ただ、アクションを呼び出す:

Route::get('/view/{id}', '[email protected]'); 

をそしてTicketControllerに、あなたはID取得します:このhereについて

public function showTicket($id) 
{ 
    dd($id); 
} 

詳しいです。

+0

Alriteブリル。私が何かを忘れていなければ、ドキュメントはちょうどクロージャを使用することに関連しています。私にこれをクリアしていただきありがとうございます。正しいとマークする(明らかに) –

1

laravelでタイプヒントを使用する必要があります。そのコントローラで

Route::get('/view/{ticket}', '[email protected]'); 

経路
素晴らしい

public function viewTicketDetails(Ticket $ticket) 
{ 
    //$ticket is instance of Ticket Model with given ID 
    //And you don't need to $ticket = Ticket::find($id) anymore 
{ 
+0

モデルを使用している場合は賢明な選択肢! :) –