2017-05-24 10 views
0

オリジナルルートが/ {ID}に行き、私はビューで/ {名前}Laravelルータ

へのルートを変更し、私は特定のモデルを反復したがってURLエンコードモデル属性、ビューからURLエンコードを引き込みます、このブレードHTMLにつながる:

<a href="{{ route('modelHistory', urlencode(strtolower($model->name))) }}"> 
            {{$model->name}} 
           </a> 

そして私は、データベースに何があるかと一致する名前にルーティングするために渡された名前を再変換するコントローラでいくつかのコードを持っていました。

Laravelは、何とかurlencodeとstrtolowerコードを、おそらくミドルウェアに取り込んだので、Model :: allを取得するとurlencodedですべて小文字の名前が付けられました。

urlencodedではなく、アンダースコアで小文字に変換された名前にURLを変更したかったので問題になりましたが、名前とurlencodedのまま残っていました。別のビューでModelとサーフェスname属性

以下の解決策。

答えて

0

ビュー内のstr関数を変更した後、私はコマンドラインに行き、php artisanと入力しました。オプションの1つはphp artisan route:clearで、ルートキャッシュをクリアします。私もphp artisan view:clearでしたが、私はそれがそれをしたルートクリアだったと信じています。

突然、名前は再び正常でした。その後、私が望む文字列関数を使用しました.Laravelはそれらを吸い込まず、すべての名前をModel:all()に適用しました。レコードの

が、ここでは、最終的なセットアップです:

Route::get('history/{name}', 'Model0\[email protected]')->name('model1History'); 

<a href="{{ route('model1History', preg_replace('/(\s|\+)/i', '_', strtolower($model1->name))) }}"> 
    {{$model1->name}} 
</a> 

は、これはイライラする経験だったので、うまくいけば、すべてはそれ

に対処する必要はありません