2016-03-18 22 views

Trả lời

1

Hãy thử điều này:

href="{{ URL('/dashboard/medicinepending/'.$val->id)}}" 
9

Hãy thử điều này:

{{ url('/dashboard/medicinepending/', [$val->id]) }} 

Nhưng đó là một ý tưởng tồi để sử dụng đường dẫn tương đối, bởi vì nếu bạn muốn thay đổi thức truy cập URL, bạn sẽ cần phải tự tìm hàng chục hoặc hàng trăm liên kết trong chế độ xem và bộ điều khiển của bạn và thay đổi chúng theo cách thủ công. Trong trường hợp này, bạn chắc chắn sẽ quên thay đổi một số trong số đó và một số trang ứng dụng của bạn sẽ bị hỏng.

Thực tiễn tốt là sử dụng các liên kết để định tuyến:

{{ route('name.route', ['id' => $val->id]) }} 

Hoặc liên kết đến các hành động:

{{ action('[email protected]', $val->id) }} 
+0

Thực tế sử dụng url là đúng functi vì những ví dụ khác mà bạn cung cấp cuối cùng chạy qua thành phần url. – ash

+0

@ash, hãy đọc phần đó của câu trả lời mà tôi giải thích tại sao sử dụng 'url()' là một ý tưởng tồi. –

+0

Tôi đã đọc những gì bạn nói, và những gì bạn nói là sai lol. Định tuyến và hành động sẽ người dùng url:/ – ash

1

này làm việc cho tôi:

<a href="{{asset('/dashboard/medicinepending/'.$val->id)}}"></a> 
2

Nhân tiện, tôi cũng đồng ý với @Alexey Mezenin, bạn nên sử dụng hàm trợ giúp route() thay vì sử dụng url(), route() sẽ cho bạn linh hoạt hơn để chuyển số tham số cùng với URL chính.

Dù sao, bạn không nên sử dụng cú pháp mã lưỡi dao ({{}}) một lần nữa bên trong một cặp dấu ngoặc và một điều nữa, cố gắng tránh bắt đầu và kết thúc bị cắt trong phần đầu tiên của url như dưới đây.

Bạn nên cập nhật mã của mình bằng mã sau đây, điều này hy vọng sẽ hoạt động.

href = "{{url ('bảng điều khiển/medicinepending'. $ Val-> id)}}" HOẶC

href = "{{url ('bảng điều khiển/medicinepending', $ val -> id)}}"

+0

Tôi đã giải thích 'url',' route' và 'action' TẤT CẢ được phân tích thông qua' app ('url') 'trả về một thể hiện của' UrlGenerator', điều này cho phép nhiều tham số mà không cần thoát. – ash

+3

tro, tôi đã trả lời câu hỏi này sớm một cách ngắn gọn chỉ vì sự hiểu biết của anh ấy, Tốt hơn là bạn đã giải thích chi tiết. Hy vọng @Matheshwaran có thể hiểu quan điểm của tôi một cách dễ dàng. –

4

nhanh trả lời

Như đã giải thích cách thức mà để xây dựng một URL trong một mẫu lưỡi bạn có thể sử dụng url helper; ví dụ bạn này sẽ làm việc:

{{ url('dashboard/medicinepending/', [$val->id] }} 

Thực hành tốt nhất

Nó không được khuyến cáo sử dụng url, route hoặc thậm chí action khi xây dựng một url cho quan điểm của bạn. Điều này là do các URL sẽ không thay đổi, nếu họ làm bạn nên có 301 chuyển hướng thiết lập để cho số điểm SEO của bạn vẫn còn hợp lệ và tốt.

Vì vậy, chỉ cần làm một cái gì đó như:

<a href="/dashboard/medicinepending/{{ $val->id }}"> 

Nhưng nếu bạn REALLY muốn sử dụng một wrapper sau đó url là điều tốt nhất thứ hai.

Mục đích chỉ của những người giúp đỡ dành cho e-mail hoặc lệnh qua artisan, khi bắn cron không biết về URL chỉ những gì được xác định trong cấu hình: app.url

Giải thích

Cách trong đó URL được tạo bằng laravel là bằng cách thêm chuỗi có giá trị là app.url cấu hình; được tìm thấy: inside config/app.php

Điều này chủ yếu cho CLI, khi bạn có quy trình cron chạy và tạo e-mail từ hàng đợi có liên kết, do đó điều này có thể được sử dụng trong ứng dụng của bạn. Nếu không, hãy sử dụng nó ở tất cả.

Sử dụng trình trợ giúp url là tốt vì bạn có thể thay đổi giá trị của cấu hình app.url bằng cách tự mình Service Provider. Điều này rất hữu ích khi bạn có một trang web bằng nhiều ngôn ngữ và/hoặc tải ngôn ngữ trang web dựa trên tên miền; Ví dụ:

  • domain.com - sẽ tải các trang web Mỹ
  • domain.uk - sẽ tải các trang web Anh
  • domain.eu - sẽ tải một trang web chung EU
  • domain.de - sẽ tải các trang web Đức
  • domain.jp - sẽ tải các trang web Nhật Bản
  • vv

Như đã đề cập, bạn có thể tạo các url từ một tuyến đường; điều này chỉ hợp lệ nếu bạn đặt tên cho các tuyến đường không phải lúc nào cũng như vậy.

{{ route('name.route', ['id' => $val->id] }} 

này sẽ tìm ra con đường bằng tên route.name và sau đó phân tích rằng cuối cùng điểm qua app('url') đó sẽ xảy ra là UrlGenerator - vì vậy đây không phải là tốt hơn so với url helper - không đi ra ngoài theo cách của bạn để đặt tên cho tất cả các tuyến đường - đó là thực hành không tốt.

Một thực tế đề cập mà cũng không phải là một ý tưởng tốt là sử dụng action bằng cách cung cấp các lớp học và hành động để tìm một con đường:

{{ action('[email protected]', $val->id) }} 

Đây là một ý tưởng tồi trừ khi MyController thực sự là một giao diện KHÔNG một lớp vật lý, trong đó bạn cần Inversion of Control để tiêm lớp thực hiện MyController nếu không, ứng dụng của bạn sẽ không tuân theo S.O.L.I.D Principle

+0

Nếu tiếp thị quyết định di chuyển/đăng/{id} đến/stories/{id} bằng cách sử dụng hành động (...) sẽ yêu cầu sửa đổi tệp routes.php thành URL mới và chuyển hướng một dòng cho url cũ . Sử dụng URL tuyệt đối sẽ yêu cầu hàng trăm chỉnh sửa. –

+0

@DustinGraham bằng cách sử dụng 'action()' bạn chỉ định không gian tên đầy đủ cho bộ điều khiển, đây không phải là ý tưởng hay khi bạn ghi đè/thay thế bộ điều khiển thông qua DI. Đối với một hệ thống nội bộ có một phạm vi, đó là tất cả tốt và tốt tránh IoC, nhưng đối với các dự án mã nguồn mở và các hệ thống doanh nghiệp có thể mở rộng, điều này không phải là rất tốt cả. – ash

+0

Tôi cho rằng đó là một đối số tốt cho việc sử dụng các tuyến đường được đặt tên. 'route ('vendor.target')' Tôi không có kinh nghiệm hoặc cần rất thường xuyên, nhưng tôi nghĩ thay đổi URL là một nhu cầu phổ biến hơn đối với tôi hơn là thay thế bộ điều khiển. Nó đã được tốt đẹp đã có wordpress không cứng mã hoá/wp-admin/route hoặc đường dẫn wp-login.php. Nó sẽ làm cho nó dễ dàng hơn nhiều để di chuyển nó xung quanh để tránh rote pentest spam. Tôi hiểu những gì bạn đang nói mặc dù, và DI là có giá trị. Cảm ơn vì sự thấu hiểu. –

Các vấn đề liên quan