Come faccio a passare un parametro a un'azione di controllo all'interno di un pacchetto laravel?

voti
18

All'interno di un pacchetto di laravel ho fatto, voglio reindirizzare l'utente a un'azione di controllo che richiede un parametro (all'interno dello stesso package).

controller:

public function postMatchItem(Request $request, $id)
{
    $this->validate($request, [
        'item_match' => 'required|numeric|exists:item,id',
    ]);

    $spot_buy_item = SpotBuyItem::find($id);

    $item = Item::find($request->input('item_match'));

    $price = $item->getPrice();

    $spot_buy_item_response = new SpotBuyItemResponse();
    $spot_buy_item_response->spot_buy_item_id = $id;
    $spot_buy_item_response->spot_buy_id = $spot_buy_item->spot_buy_id;
    $spot_buy_item_response->item_id = $item->id;
    $spot_buy_item_response->user_id = $spot_buy_item->user_id;
    $spot_buy_item_response->spot_buy_price = $price;
    $spot_buy_item_response->created_ts = Carbon::now();
    $spot_buy_item_response->save();

    return redirect()->action('Ariel\SpotBuy\Http\Controllers\Admin\[email protected]', [$id]);
}

L'azione nel reindirizzamento è lo stesso percorso che uso nel mio routes.phpfile per indirizzare l'utente a questa azione di controllo

Itinerario:

Route::get('/part/{id}', 'Ariel\SpotBuy\Http\Controllers\Admin\[email protected]')->where('id', '[0-9]+');

Ho provato varianti di questo percorso senza successo, tra cui [email protected], come suggerisce la documentazione ( https://laravel.com/docs/5.1/responses#redirects )

Nota : Ho ottenuto questo al lavoro nominando il mio percorso in routes.phpe l'utilizzo return redirect()->route('route_name', [$id]);, ma ho ancora voglia di sapere come passare un azione di controllo pacchetto per la ->action()funzione di.

È pubblicato 28/01/2016 alle 18:28
dall'utente
In altre lingue...                            


1 risposte

voti
5

E 'il tentativo di accedere il controller all'interno del App\Http\Controllersnamespace. Può vedere hanno aggiunto al proprio nome del controller nel vostro errore:

App\Http\Controllers\Ariel\SpotBuy\Http\Controllers\Admin\[email protected]‌​art

È necessario per sfuggire al Arielnamespace con un \alla partenza:

return redirect()->action('\Ariel\SpotBuy\Http\Controllers\Admin\[email protected]', [$id]);
Risposto il 28/01/2016 a 18:59
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more