2016-11-23 1 views
2

Avoir un problème avec la redirection.Laravel 5.3: Argument manquant 2

exemple, dans ce point de vue,

here

nous avons la vue du spectacle pour les notes d'une entreprise nommée Tiago.

Le lien qui dit 'créer une note pour Tiago', se présente comme suit:

<p><a href="{{route('company.companies.notes.create', $company->companyID)}}">Create Note for {{$company->Company_Name}}</a></p> 

où $ Company-> COMPANYID est d'être grabbend du contrôleur, qui ressemble à ceci:

public function create(Request $request, $id) 
{ 
    // 
    $company = $request->user()->company()->first(); 
    $notes = NotesCompany::where('companyID', "=", $id)->get(); 

    return view("company.companies.notes.create", compact('company', 'notes')); 

} 

et a l'itinéraire suivant:

GET|HEAD | company/companies/notes/create | company.companies.notes.create | App\Http\Controllers\[email protected] | web,company | 

Route::resource('company/companies/notes', 'CompanyNotesController',['names'=>[ 


    'index'=>'company.companies.notes.index', 
    'create'=>'company.companies.notes.create', 
    'store'=>'company.companies.notes.store', 
    'edit'=>'company.companies.notes.edit', 
    'show'=>'company.companies.notes.show' 

]]); 

le problème est, quand pressin dans « Créer des notes pour Ti il y a », l'erreur suivante passe par:

here

Tous debug ici? Apprécié

Tiago

+0

Enlever demande $ demande et vérifier. –

+0

qui n'a pas résolu le problème ... – brotherperes

+0

lorsque vous avez une demande, cela devrait provenir d'une soumission de formulaire et plus vous utilisez les routes par défaut s'il vous plaît vérifier https://laravel.com/docs/5.3/controllers –

Répondre

0

Normalement, la méthode de ressource create ne prend pas de paramètres d'URL. Il peut cependant le faire en essayant d'utiliser des ressources imbriquées. Il semble que vous essayez d'utiliser des itinéraires de ressources imbriqués, mais que vous ne l'avez pas configuré correctement.

Votre itinéraire doit ressembler:

Route::resource('companies.notes', 'CompanyNotesController',['names'=>[ 
    'index'=>'company.companies.notes.index', 
    'create'=>'company.companies.notes.create', 
    'store'=>'company.companies.notes.store', 
    'edit'=>'company.companies.notes.edit', 
    'show'=>'company.companies.notes.show' 
]]); 

Cela va créer des urls qui ressemblent à companies/{company_id}/notes/create, etc., et que company_id sera passé dans votre méthode create.

Je ne crois pas qu'il existe un moyen de modifier les routes générées lors de l'utilisation de ressources imbriquées. Vous pouvez essayer Route::resource('company/companies.notes', ..., mais je ne sais pas si cela va fonctionner.