web-dev-qa-db-ja.com

Laravelブレードテンプレート、URL :: to内のforeach変数?

投稿の基本的なリストビューを作成しています。「編集」ページへのリンクが必要です。

私はブレードを使用しています。私が持っているのは、foreachループを含むテーブルで、各投稿と編集/削除ボタンが表示されます。

私がやりたかったのは、ブレードのURL :: toを使用して、ページの編集ページと削除ページへのリンクを作成し、一貫したリンクを確保することです。

私が使ってみたコード(これはforeachループ内にあるため、$ post-> id変数を思い出してください)は次のとおりです。

<a href="{{ URL::to('admin/posts/edit/$post->id') }}" class="btn btn-mini btn-primary">Edit Post</a>

ただし、これは機能しません。私も試しました

<a href="{{ URL::to('admin/posts/edit/<?php echo $post->id; ?>') }}" class="btn btn-mini btn-primary">Edit Post</a>

これも機能しません。

エラーは発生しません。リンクは文字通り次のようになります。

http://domain.dev/admin/posts/$post->id

これを回避する方法はありますか?

11
Sk446

問題は、単一の'を含む文字列内でphp変数($ post)を使用していることだと思います。この場合、変数の名前を出力するだけです。これを試して:

<a href="{{ URL::to('admin/posts/edit/' . $post->id) }}" class="btn btn-mini btn-primary">Edit Post</a>

お役に立てれば。ヴラド

22
vlad

vladは既にあなたの質問に正しい答えを与えていますが、URL::actionを介してコントローラーアクションに直接リンクすることもできます:

<a href="{{ URL::action('Admin\PostsController@edit', $post->id) }}">Edit</a>
13
Holger Weis

_{{ }}_は_<?php echo ;?>_と同じです

あなたが単一の_'_を入れた場合

_<?php echo '$hello' ?>_ = $ hello

しかし、二重にした場合' (")-> _<?php "$hello" ;?>_ = Hello World(1つの例のみ)

{{ URL::to("admin/posts/edit/$post->id") }}のようなものを書く必要があります

1
Christian

これはうまくいくと思います

<a href="{{ url('test/'.$post->id.'/view') }}"></a>
1
Abdulmajeed

別の方法

<a href="{{URL::to('/')}}/admin/posts/edit/{{$post->id}}">Edit</a>
0
Suresh Bala

Laravel 5でこれに問題があったので、質問が古い場合でもポップインすると考えました。

{{ URL::to('/box').'/'.$box->id }}

または
{{ url('/box').'/'.$box->id }}

0
Craicerjack

また、route()ヘルパーを使用して、ルートの名前でURLを生成することもできます。たとえば、ルートの定義:

Route::get('/test/mypage/{id}', 'MyController@myAction')->name('my_route_name');

ビューのコード:

<a href="{{ route('my_route_name', $row['id']) }}">{{ $row['name'] }}</a>
0
mnv