Шаблоны кликов Laravel, переменная foreach внутри URL:: to?

Я создаю базовое представление списка сообщений и нуждаюсь в ссылке на страницу редактирования.

Я использую blade-сервер, и у меня есть таблица с циклом foreach, показывающая каждое сообщение вместе с кнопками редактирования/удаления.

Я хотел бы использовать URL-адрес blade-узла:: для ссылок на страницы редактирования и удаления, чтобы обеспечить согласованные ссылки.

Код, который я пытался использовать (помните, что это внутри цикла foreach, следовательно, $post- > id var):

<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

Есть ли способ обойти это?

Ответ 1

Я думаю, проблема в том, что вы используете переменную php ($ post) внутри строки с одним '. В этом случае он просто выводит имя переменной. Попробуйте следующее:

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

Надеюсь, это поможет. Влад

Ответ 2

vlad уже дал правильный ответ на ваш вопрос, но помните, что вы также можете напрямую ссылаться на действие вашего контроллера через URL::action:

<a href="{{ URL::action('Admin\[email protected]', $post->id) }}">Edit</a>

Ответ 3

{{ }} равны <?php echo ;?>

если вы поместите один '

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

но если вы поместите double ' (")<?php "$hello" ;?>= Hello World (всего один пример)

Вам нужно написать что-то вроде {{ URL::to("admin/posts/edit/$post->id") }}

Ответ 4

Другой способ

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

Ответ 5

У вас была проблема с этим в Laravel 5, так что подумал Id, чтобы он всплыл, даже если вопрос старый. Решил мою проблему, используя

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

или
{{ url('/box').'/'.$box->id }}

Ответ 6

Также вы можете использовать route() помощник для генерации URL-адреса по имени маршрута. Например, определение маршрута:

Route::get('/test/mypage/{id}', '[email protected]')->name('my_route_name');

Код на ваш взгляд:

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