Hoe kan ik een parameter aan een controller actie binnen een Laravel Package passeren?

stemmen
18

Binnen een Laravel pakket ik heb gemaakt, ik wil de gebruiker om een ​​controller actie die een parameter (binnen hetzelfde pakket) vereist omleiden.

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]);
}

De actie in de omleiding is hetzelfde pad ik in mijn routes.phpbestand om de gebruiker naar deze controller actie

Route:

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

Ik heb geprobeerd variaties van dit pad zonder succes, met inbegrip [email protected]zoals de documentatie suggereert ( https://laravel.com/docs/5.1/responses#redirects )

Let op : Ik heb dit te laten werken door het noemen van mijn route in routes.phpen het gebruik van return redirect()->route('route_name', [$id]);, maar ik wil nog steeds weten hoe je een pakket controller actie om het passeren ->action()functie.

De vraag is gesteld op 28/01/2016 om 18:28
user
In andere talen...                            


1 antwoorden

stemmen
5

Het probeert om toegang te krijgen tot je controller vanuit de App\Http\Controllersnamespace. Kunt zien dat ze hebben het toegevoegd aan je controller naam in uw fout:

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

U moet het ontsnappen Arielnamespace met een \aan de start:

return redirect()->action('\Ariel\SpotBuy\Http\Controllers\Admin\[email protected]', [$id]);
antwoordde op 28/01/2016 om 18:59
bron van user

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