javascript (Laravel 4) でコントローラー関数を呼び出すルートへの ajax 呼び出しを使用してクリックした後、データベースにエントリを保存しようとしています。
「ArtistsController」によって制御されるリソース「artists」があります。私が呼び出しを行っているビューは、「artists」ディレクトリの「show.blade.php」と呼ばれます (つまり、ページにはさまざまなアーティストが表示されます: artist/1、artists/2 など...)。
このデータを保存する「fanartists」というテーブルもあります。基本的に、ユーザーが特定のアーティストのページのボタンをクリックすると、その関係がこのテーブルに格納されます。
関連するコードは次のとおりです。
show.blade.php:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '*****************',
status : true,
cookie : true,
oauth : true
//xfbml : true
});
$( '.opener' ).click(function() {
FB.ui({
method: 'feed',
link: 'http://crowdtest.dev:8888/artists/',
name: 'Hello',
caption: 'Hello',
description: 'Hello!'
});
request = $.ajax({
url: "/artists/fbclick",
type: "post",
data: serialised data
});
});
};
</script>
<a class="add-list-button-no-margin opener" style="color: white; font:14px / 14px 'DINMedium','Helvetica Neue',Helvetica,Arial,sans-serif;">Play my city</a>
アーティストコントローラー:
public function fbclick($id) {
$artist = Artist::find($id);
$fanartist = new Fanartist;
$fanartist->artist_id = $artist->id; //the id of the current artist page (i.e. artists/1, id=1)
$fanartist->fan_id = Auth::user()->id;
$fanartist->save();
}
ルート:
Route::get('/artists/fbclick', array('uses' => 'ArtistsController@fbclick'));
ajax リクエストを含めると、FB フィードがポップアップしません。私がそれを取り除くと、そうです。また、私が望むようにデータベースにデータを保存していません。
ここで何か問題がありますか?あなたの助けに感謝します。ありがとうございました。