Consider the type of URL that is needed / how the URL is being used. One of the advantages of having separate helper methods for each type of URL is they can have different handling logic. For example, assets (e.g. CSS, images, etc.) could involve a check that the file exists in the file system but do not require the type of analysis that a route would because the route may have parameters.
url() Generates an absolute URL to the given path (code)
Use for static URLs (which should be rare).
Accepts array of parameters that are encoded and added to the end of the domain.
Preserves any URL query string.
{{ url('search') }}
// http://www.example.com/search
{{ url('search', ['qevo', 'laravel']) }}
// http://www.example.com/search/qevo/laravel
asset() Generates a URL to an application asset (code)
Use for files that are directly served such as CSS, images, javascript.
Only accepts a direct path.
{{ asset('css/app.css') }}
// http://www.example.com/css/app.css
route() Gets the URL to a named route (code)
Use for every route (every route should be named to help future-proof path changes).
Requires named routes.
Accepts associative array for route parameters.
Allows override for relative route vs. absolute route (default).
{{ route('user.profile', ['name'=>'qevo']) }}
// http://www.example.com/user/qevo/profile
{{ route('user.profile', ['name'=>'qevo'], false) }}
// /user/qevo/profile
No comments:
Post a Comment