我正试图在Laravel中制作类似AJAX的按钮。控制台返回500(内部服务器错误)。这是我的:
的JavaScript
$(function(){
$('#likeForm').submit(function(e){
e.preventDefault();
var user = $('input[name="user_id"]').val();
var token = $('input[name="_token"]').val();
$.ajax({
url:'like-post',
type: 'POST',
data: {'_token': token, 'user': user },
dataType: 'JSON',
success: function() {
alert('succsess');
},
error: function(){
alert('error' );
}})})});
html.blade
<form method="POST" id="likeForm" action="">
<input type="hidden" name="user_id" value="{{$user->id}}" >
<a onclick="$('#likeForm').submit()"><span>
<span class="fa fa-heart"></span> Like</a>
<input type="hidden" name="_token" value="{{ Session::token() }}">
</form>
的Controler
public function likeUser (Request $r) {
$user_id = $r->input('user');
Favorite::create(['user_id' => Auth::user()->id, 'liked_id' => $user_id]);
}
和路线
Route::post('like-post', 'FavoritesController@likeUser');
答案 0 :(得分:0)
url('/like-post')
是laravel的方式:
$.ajax({
url:"{{url('/like-post')}}",
type: 'POST',
data: {'_token': token, 'user': user },
dataType: 'JSON',
答案 1 :(得分:0)
您可以使用从方法签名中删除请求,并将整个方法写在一行:
public function likeUser () {
Favorite::create(['user_id' => Auth::user()->id, 'liked_id' => \Request::get('user')]);
}
答案 2 :(得分:0)
从您的错误图像中看到的内容...您正在注入错误的类作为您需要使用的依赖项
Illuminate\Http\Request
不是App\Http\Requests\Request
IoC容器的工作方式是查看代码并找到需要注入的类并实例化它们,这里传递了一个无法实例化的抽象类。
尝试并告诉我它是否有帮助。