Шаблоны кликов 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>