2017-02-17 31 views
0

Ich habe ein Problem mit Routenparameter in Laravel ist hier die main.blade.php:Routenparameter nicht Laravel in Arbeits

<body> 
<div class="flex-center position-ref full-height"> 
    <div class="content"> 
     <div class="title m-b-md"> 
      Generate Your Domain Now 
     </div> 
     {!! Form::open(['route'=>'generatorindex' , 'method' => 'post']) !!} 
      <input type="hidden" name="_token" value="{!! csrf_token() !!}"> 
      <input name="inputkeyword" type="text" placeholder="Enter your keyword"> 
      <button type="submit" value="Generate"></button> 
     {!! Form::close() !!} 

    </div> 
</div> 
</body> 

und hier ist die Funktion in der Steuerung:

public function generator(Request $inputkeyword) 
    { 
     echo $productname = $inputkeyword->input('inputkeyword'); 

    } 

schließlich, hier ist die Route:

Route::any('/generator/{inputkeyword}', [ 'as' => 'generatorindex', 'uses' => '[email protected]' ]); 

aber es gibt:

ErrorException in UrlGenerationException.php line 17: 
Missing required parameters for [Route: generatorindex] [URI: generator/{inputkeyword}]. (View: C:\Users\Mostafa\myapp\resources\views\main.blade.php) 

Was mache ich falsch? Wo sollte ich den Eingabeschlüsselparameter definieren?

+0

Siehe Route, die Sie definieren d/generator/{inputkeyword} wie das hier, aber in form submission übergibst du nur generatorindex also sende bitte generatorindex/paremeter {id} – Sona

Antwort

2
<body> 
    <div class="flex-center position-ref full-height"> 
     <div class="content"> 
      <div class="title m-b-md"> 
       Generate Your Domain Now 
      </div> 
      {!! Form::open(['route'=> ['generatorindex', '??'] , 'method' => 'post']) !!} 
       <input type="hidden" name="_token" value="{!! csrf_token() !!}"> 
       <input name="inputkeyword" type="text" placeholder="Enter your keyword"> 
       <button type="submit" value="Generate"></button> 
      {!! Form::close() !!} 

     </div> 
    </div> 
</body> 

Entweder einen Wert übergeben, wo ich geschrieben habe "??" in obigem Code

OR

Fabrikat inputkeyword Parameter optional durch suffixing es mit "?" in route.php-Datei wie folgt:

Route::any('/generator/{inputkeyword?}', [ 'as' => 'generatorindex', 'uses' => '[email protected]' ]); 

Bitte lesen Sie diese:

https://laravel.com/docs/5.3/helpers#method-route

https://laravel.com/docs/5.3/routing#parameters-optional-parameters


EDIT

Wie pro Ihre Anforderung Sie tol d mich im Chat:

routes.php

Route::post('generator', [ 'as' => 'generatorindex', 'uses' => '[email protected]' ]); 

Route::get('generator/{inputkeyword}', [ 'as' => 'generatorindexurl', 'uses' => '[email protected]' ]); 

MainController.php

public function generator() { 
    return redirect()->route('generatorindexurl', request('inputkeyword')); 
} 

public function generatorindexurl() 
{ 
    dd(request()); 
} 

Ansicht

<body> 
    <div class="flex-center position-ref full-height"> 
     <div class="content"> 
      <div class="title m-b-md"> 
       Generate Your Domain Now 
      </div> 
      {!! Form::open(['route'=> ['generatorindex'] , 'method' => 'post']) !!} 
       <input type="hidden" name="_token" value="{!! csrf_token() !!}"> 
       <input name="inputkeyword" type="text" placeholder="Enter your keyword"> 
       <button type="submit" value="Generate"></button> 
      {!! Form::close() !!} 

     </div> 
    </div> 
</body> 
+0

sollte ich etwas wie '['generatorindex', $ eingabewort-> eingabewort]' –

+0

ja du verwenden kann ... –

+0

Jetzt heißt es undefined Variable: inputkeyword –