2017-02-17 13 views
0

У меня есть проблема с параметрами маршрута в Laravel, Вот main.blade.php:Параметры маршрута не работает в Laravel

<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> 

и здесь функция в контроллере:

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

    } 

наконец, вот маршрут:

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

но он возвращает:

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) 

Что я делаю неправильно? Где я должен определить параметр ключевого слова?

+0

См маршрут у вас есть определить d/generator/{inputkeyword}, ​​как это, но в представлении формы вы передаете только генератор indexex, поэтому, пожалуйста, отправьте генератор indexex/paremeter {id} – Sona

ответ

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> 

Либо передайте некоторое значение, где я написал "??" в коде выше

ИЛИ

Сделать параметр inputkeyword необязательно путем добавления суффикса его с «?» в route.php файл, например так:

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

Пожалуйста, прочитайте это:

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

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


EDIT

По вашему требованию вы Тол d мне в чате:

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

вид

<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

следует использовать что-то вроде '['generatorindex', $ inputkeyword-> inputkeyword]' –

+0

да вы может ..... –

+0

Теперь это говорит Неопределенная переменная: inputkeyword –

 Смежные вопросы

  • Нет связанных вопросов^_^