Laravel のルーティング モジュールでは、各ルートに次のような名前を設定できることを皆さんは知っておく必要があります。 Jump は
Route::get('/blog/{blog}', 'BlogController@show')->name('blog.show')
を使用できます。これの利点は、URL が変更された場合、たとえば
したい場合、ルーティング ファイルを変更するだけで済み、他の場所を調整する必要がないことです。 ただし、これはバックエンドに限定されており、ブレード テンプレートで使用できます。これにより、js ファイルが分離され、ブレード テンプレートに直接書き込まれなくなります。これにより、ajax リクエストが js またはブレード テンプレートで送信されます。転送するときは、route('blog.show', ['blog' => 1])
'/blog/{blog}'
改成 '/boke/{blog}'
バックエンド部分は関数を実装する必要があります
return redirect()->route('blog.show', ['blog' => 1]);
この関数の機能は、次のようなルート名に基づいて元のルーティングアドレスを返すことです:
location.href = '/blog/' + id;
フロント- end にも必要な関数は 1 つだけです:
function route_uri($name) { return app('router')->getRoutes()->getByName($name)->getUri(); }
注:
Lodash はここで引用されています
この関数の機能は次のとおりです:
echo route_uri('blog.show'); // 会输出/blog/{blog}
非常に単純で、ブレードで定義されています。テンプレート: js ファイル内の let route = (routeUrl, param) => {
let append = [];
for (let x in param) {
let search = '{' + x + '}';
if (routeUrl.indexOf(search) >= 0) {
routeUrl = routeUrl.replace('{' + x + '}', param[x]);
} else {
append.push(x + '=' + param[x]);
}
}
let url = '/' + _.trimStart(routeUrl, '/');
if (append.length == 0) {
return url;
}
if (url.indexOf('?') >= 0) {
url += '&';
} else {
url += '?';
}
url += append.join('&');
return url;
}
ここだけ:
route('/blog/{blog}', {blog: 1}); //返回 /blog/1 route('/blog/{blog}', {blog: 1, preview: 1}); //返回 /blog/1?preview=1
Laravel のルート関数を JS で実装する方法の詳細な説明については、PHP 中国語 Web サイトに注目してください。