2017-03-20 3 views
0

私は、保存するたびにデータテーブルに行を追加するという仕事をするajax関数を持っています。問題は、それが追加されたときに、明らかに、入力されたものを追加することである。しかし、私はすべての外部キーがその名前に対応することを望んでいます。例えばajaxでモデルを呼び出す方法は?

..

ユーザーのジョブIDが5である...アヤックスに私はする$ user-> job->名前に

を追加したいので、私は、Ajaxでモデルを呼び出すことができますか?あなたが戻って、両方のユーザー&ジョブの詳細を取得したい場合は

これは私のAjaxがところでどのように見えるかです。..

​​
+0

Ajaxリクエストの一部としてジョブ名を返そうとしていますか? もしIDを知っていれば、あなたのコントローラで(Job :: find(id)を使って)ルックアップを行い、レスポンスオブジェクトの一部として名前を返す必要があります通常の要求で –

+0

@DaveLはい、それは私が求めているものです!これをコントローラからAjaxに戻す方法はありますか? $ user-> save(); $ equivalentents = $ user-> role-> name; リターンレスポンス() - > json($ user、$ equivalent); – Domy

+0

それはかなり近いです、私は何をやろうとしているのかの非常に基本的な例を書くでしょう –

答えて

0

次のようなものを実装する必要がありますが、同じ(適切な使用してくださいません入力&例外処理)本:

Laravelコントローラー:

public function add(Request $request) { 
    $user = new User(); 
    // Validate & add user, make sure you validate relationship id's 
    $user->save(); 

    return response()->json(['user' => $user, 'roleEquivalents' => $user->role->name]); // This returns a nicely structured object 
} 

JSONオブジェクトを返す方法の詳細については、LaravelのHTTP Response documentationを参照してください。

jQueryの

$.ajax({ 
      type: 'POST', 
      url: '{{ ('/users') }}', 
      data: { 
       '_token': $('input[name=_token]').val(), 
       'name': $('input[name=user_name]').val(), 
       'email': $('input[name=user_email]').val(), 
       'password': $('input[name=user_password]').val(), 
       'role_id': $('#user_role option:selected').val(), 
       'team_id': $('#user_team option:selected').val() 

      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       // You should throw an error from Laravel if it failed validation 
      }}).done(function(data) { 
       if (data) { // If it failed we don't have data 
        var user = data.user; 
        var roleEquivalents = data.roleEquivalents; // This is your role name 

        //add rows in modal 
        $('#userTable').append("<tr class='item" + user.id + "'><td align='center'><input type='checkbox' class='i-checks' name='input[]' value='"+user.name+"'> </td><td>" + user.name + "</td><td>" + user.email + "</td><td>" + user.role_id + "</td><td>" + user.team_id + "</td><td>" + user.team_id + "</td><td><a data-toggle='modal' href='#modal-edit-" + user.id +"'><i class='fa fa-pencil'></i> Edit</a></td><td><button class='edit-modal btn btn-info' id='editUser' data-id='" + user.id + "' data-name='" + user.name + "'><span class='glyphicon glyphicon-edit'></span> Edit</button></td></tr>"); 
        //clear the modal 
        $("#modal-add-user").find("input,select").val('').end(); 
       } 

    }); 

また、あなたが他のチームのオブジェクトを持っているように、あなたは同じようにそれを返すことができます見えます。

+0

ありがとう!あなたは素晴らしい作品です。 – Domy

関連する問題