簡體   English   中英

在laravel 5.2中輸入到Controllers閉包

[英]Inputting to a Controllers closure in laravel 5.2

因此,我有一個“ TicketController”,其中包含用於處理系統中“票證”的功能。 我正在尋找一種最好的方法來發送新路由,該路由將使用{id}的路由參數到我的TicketController來查看故障單。

這是我的路線

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

    Route::get('/', 'TicketController@userGetTicketsIndex');
    Route::get('/new', function(){
       return view('tickets.new');
     });
    Route::post('/new/post', 'TicketController@addNewTicket');
    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
 {

}

您無需在此處使用閉包。 只需調用一個動作:

Route::get('/view/{id}', 'TicketController@showTicket');

TicketController您將獲得ID:

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

在這里了解更多。

您應該在laravel中使用type-hint。 這很棒
在途中

Route::get('/view/{ticket}', 'TicketController@viewTicketDetails');

在控制器中

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
 {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM