Как передать $val->id
в параметре URL-адреса Laravel . Я использую следующий код. Ошибка возврата
href="{{url('/dashboard/medicinepending/{{$val->id}}')}}"
Попробуй это:
href="{{ URL('/dashboard/medicinepending/'.$val->id )}}"
Попробуй это:
{{ url('/dashboard/medicinepending/', [$val->id]) }}
Но неплохо использовать относительные пути, потому что если вы захотите изменить схему URL, вам нужно будет вручную найти десятки или сотни ссылок в ваших представлениях и контроллерах и изменить их вручную. В этом случае вы обязательно забудете изменить некоторые из них, и некоторые страницы вашего приложения будут сломаны.
Хорошей практикой является использование ссылок на маршрут:
{{ route('name.route', ['id' => $val->id]) }}
Или ссылки на действия:
{{ action('MyController@show', $val->id) }}
Как ранее объяснялось способ создания URL-адреса в шаблоне клинка, вы можете использовать помощник URL-адреса; для вашего примера это будет работать:
{{ url('dashboard/medicinepending/', [$val->id] }}
Не рекомендуется использовать url
, route
или даже action
при создании URL-адреса для ваших просмотров. Это связано с тем, что URL-адреса не изменятся, если у вас есть 301 настройка перенаправления, чтобы ваш рейтинг SEO оставался действительным и хорошим.
Так просто сделайте что-нибудь вроде:
<a href="/dashboard/medicinepending/{{ $val->id }}">
Но если вы ДЕЙСТВИТЕЛЬНО хотите использовать обертку, тогда url
– вторая лучшая вещь.
Единственная цель этих помощников – для электронной почты или команд через artisan
, при запуске cron не знает о URL-адресе только то, что определено в config: app.url
Способ, которым URL-адреса построены с помощью laravel, заключается в добавлении строки со значением app.url
config; найдено: внутри config / app.php
Это в основном для CLI, когда вы выполняете процессы cron и генерируете электронные письма из очереди со ссылками, поэтому это может быть использовано в вашем приложении. В противном случае не используйте его вообще .
Использование помощника url
является хорошим, потому что вы можете изменить значение конфигурации app.url
своим собственным поставщиком услуг . Это очень полезно, когда у вас есть веб-сайт на нескольких языках и / или загрузка языка сайтов на основе имени домена; пример:
Как уже упоминалось, вы можете создавать URL-адреса маршрута; это справедливо только в том случае, если вы назовете свои маршруты, что не всегда так.
{{ route('name.route', ['id' => $val->id] }}
Это найдет маршрут по имени route.name, а затем проанализирует эту конечную точку через app('url')
которая, как представляется, является UrlGenerator, поэтому это не лучше, чем помощник url
адреса, – не уходите с пути Назовите все маршруты – это плохая практика.
Другая упомянутая практика, которая также не очень хорошая идея, заключается в использовании action
, предоставляя класс и действие для поиска маршрута:
{{ action('MyController@show', $val->id) }}
Это плохая идея, если MyController
на самом деле не является интерфейсом, а не физическим классом, поскольку вам требуется Inversion of Control для инъекции класса, который реализует MyController, иначе ваше приложение не будет соответствовать SOLID-принципу
Кстати, я также согласен с @Alexey Mezenin, вам лучше использовать вспомогательную функцию route () вместо использования url (), route () даст вам больше гибкости для передачи числа параметров вместе с основным URL-адресом.
В любом случае, вы не должны использовать синтаксис лезвийного кода ({{}}) снова в другой паре скобок и еще одну вещь, постарайтесь не начинать и заканчивать резку в первой части URL-адреса, как показано ниже.
Вы должны обновить свой код следующим образом: это, надеюсь, будет работать.
href = "{{url ('dashboard / medicinepending'. $ val-> id)}}" ИЛИ
href = "{{url ('dashboard / medicinepending', $ val-> id)}}"
Это работает для меня:
<a href="{{asset('/dashboard/medicinepending/'.$val->id)}}"></a>