2016-10-06 8 views
0

LaravelまたはEmberのコントローラのいずれかに問題があります。フォームに記入した後に保存するレコードを取得できますが、レコードはデータベースに保持されません。フォームはレコードを保存しますが、レコードをデータベースにプッシュしません。私はサーバーにデータをプッシュするにはEmbersのガイドに従ってみましたが、ジュースはありませんでした。また、このサイトのすべての助けをいただきありがとうございます、あなたはこれまで私を持っています、うまくいけば、私はあなたの助けを借りてこれを解決することができます。ここでは、コントローラ、LaravelはEmberJsを使用してコントローラでポストを維持しません

Laravelコントローラコントローラで

$statusCode = 200; 
    $libraries = $request->all(); 
    $library = Library::create($libraries); 
    $criteria = $library->toArray(); 
    return Response::json([ 
     'libraries' => $criteria], 
     $statusCode); 

エンバールート

model() { 
    return this.store.createRecord('library'); 
}, 

actions: { 
    saveLibrary(item) { 
    item.save().then(() => this.transitionTo('libraries')); 
    }, 

    willTransition() { 
    //rollbackAttributes() removes the record from the store 
    // if model is 'isNew' 

    this.controller.set('model').rollbackAttributes(); 
    } 
} 
+0

これはあなたのルートではなく、あなたのエムバーコントローラですか? 'willTransition'はアクションではないことに気づくでしょう。 – Lux

+0

こんにちはラックス良いコール、これは間違いなくEmberルートです。 willTransitionは組み込みアクションだったのだろうか? – Teejten

+1

そのフックではなく、アクションです。したがって、 'actions'ハッシュの下に置かないでください。 – Lux

答えて

0

である、あなたはtransitionToRouteを使用する必要があります。 saveメソッド呼び出しのために/librariesのPOST要求を実装します。

actions: { 
    saveLibrary() { 
     //You dont need to pass. you need to update model properties. and then call save method. 
     this.get('model').save().then(() => this.transitionToRoute('libraries')); 
    } 
} 
+0

私は、transitionToRouteと他の変更を使用しましたが、依然として持続しません。私はwillTransition()アクションを取り除こうとしましたが、まだ何もしませんでした。うーん.... – Teejten

+0

'save()'を呼び出すと、ネットワーク要求 '/ libraries'が要求されますか? – kumkanillam

+0

こんにちはkumkanillam、あなたの継続的な助けに感謝します。コンソールは、/ライブラリの要求が200であると言います。モデル名を複数形にしていると思いますか?ex)私のapiフックは "ライブラリ"ですが、Emberの私のモデル名は "ライブラリ"です。 Idk、私はライブラリのための新しいアダプタを作成する必要があるかもしれないと思っていましたが、Emberがライブラリのように複数形をどのようにしているかについての特定の情報は見つかりません。 – Teejten

関連する問題