4

(新しいlaravelユーザーとして)laravel URL::classを介してajax呼び出しURLを構築しようとしています:

$.ajax( {
    url: '{{ URL::route('getUser', ['3']) }}', 
    success: function(results) {
    alert(results);
    }
});

ルート.php:

Route::get('admin/getUser/{user_id}', array(
   'as' => 'getUser', 
   'uses' => 'AdminController@getUser'
));

このパラメーターは、ハードコードされているのではなく、3jquery から取得する必要があります (例: $(this).attr('user_id'))。

URL を動的に作成する方法を教えてもらえますか?

ルート定義のため、URL::route関数にはパラメーターをハードコードするか、php 変数として指定する必要があるようです。

これが+/-明確であることを願っています...

とにかく助けてくれてありがとう!

4

3 に答える 3

1

私は Ajax 呼び出しに URL::to() を使用しています。問題がありました。ただし、URL::to() を使用すると、javascript 変数を使用できるようになります。これを試して:

$id = 3;
"{{URL::to('getUser/'".$id.")}}"

これが役立つことを願っています、私も新しいです。もっといい方法を見つけたら教えてください ;)

于 2013-06-13T13:47:11.000 に答える
1

PHP はファイルをブラウザに渡す前に実際に処理するため、php 変数を直接動的に使用することは実際には不可能かもしれませんが、それを回避する方法があります。user_idこれは、ルート パラメーターを特定の定義に型キャストしていない場合にのみ機能する可能性があります。

// Add a placeholder which we'll use jQuery to swap out later
urlTo = "{{ URL::route('getUser', ['%userid%']) }}";

// swap out the placeholder dynamically using jQuery
urlTo = urlTo.replace('%userid%', $('#someElement').attr('user_id'));

$.ajax({
    url: urlTo, 
    success: function(results) {
        alert(results);
    }
});

ここで行ったことは、ルートから生成された URL にプレースホルダーを作成することです。これにより、http://localhost/app/profile/%userid%PHP が処理を終了した後のような URL になる可能性があります。次に、jQuery を使用して、プレースホルダーを実際の動的な値に置き換えます。

于 2013-06-14T03:38:16.833 に答える