Я настраиваю как и в отличие от параметров в статьях.но в LikeController есть проблема.когда я нажимаю кнопку «Мне нравится», он говорит ->
SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'user_id' не может быть пустым (SQL: вставить в likes
(user_id
, article_id
, updated_at
, created_at
) значения (?, 5, 2019-05-30 07:58:34, 2019-05-30 07:58:34))
ОбновленоJWT и маршруты
Like model:
class Like extends Model
{
public $timestamps = true;
public $with = ["user"];
protected $fillable = ["user_id", "article_id"];
public function article()
{
return $this->belongsTo("App\Article");
}
public function user()
{
return $this->belongsTo("App\User");
}
}
и LikeController:
use Auth;
use App\Article;
use App\Like;
public function like($id)
{
$article = Article::find($id);
$like = Like::create([
"user_id" => Auth::id(),
"article_id" => $article->id
]);
return Like::find($like->id);
}
public function unlike($id)
{
$article = Article::find($id);
Like::where("user_id", Auth::id())
->where("article_id", $article->id)
->first()
->delete();
return 1;
}
Я не очень уверен, почему Auth::id()
не может найти идентификатор пользователя ивернуть ноль?
Использование JWT с vue.js
Маршруты:
Route::group(['prefix' => 'auth'], function ($router) {
Route::post('register', 'AuthController@register');
Route::post('login', 'AuthController@login');
Route::post('logout', 'AuthController@logout');
Route::post('refresh', 'AuthController@refresh');
Route::post('me', 'AuthController@me');
});
Route::get("/like/{id}", [
"uses" => "LikeController@like"
]);
Route::get("/unlike/{id}", [
"uses" => "LikeController@unlike"
]);
AuthController и Пользователь
для настройки контроллера и модели пользователя. Я следовал документам: https://jwt -auth.readthedocs.io / en /velop / quick-start /