سلام
مشابه این جلسه را اومد در API با Authorization jwt انجام دادهم
در ایجاد سطر جدید برای userstate با ایجاد هر یوزر مشکلی پیش نمیآیید اما با ایجاد هر تاپیک فیلد count_topic جدول userstate اضافه نمیشود
namespace App\\Observers;
use App\\article;
class ArticleObserver
{
/**
* Handle the article "created" event.
*
* @param \\App\\article $article
* @return void
*/
public function created(article $article)
{
$article->users->incrementArticle();
}
}
hasMany(User::class); } public function add($request) { try { $this::create([ 'user_id'=>auth('api')->user()->id, 'title'=>$request->title, 'description'=>$request->description, 'image'=>$request->image ]); }catch (\\Exception $e){ return response()->json(['message' => 'error']); } }
namespace App\\Providers;
use App\\Article;
use App\\Observers\\ArticleObserver;
use App\\Observers\\UserObserver;
use App\\User;
use Illuminate\\Support\\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Article::observe(ArticleObserver::class);
User::observe(UserObserver::class);
}
}
namespace App;
use App\\Http\\Resources\\userCollection;
use App\\Services\\Comment\\Traits\\Commentable;
use App\\Services\\User\\ValidateUser;
use http\\Env\\Request;
use Illuminate\\Contracts\\Auth\\MustVerifyEmail;
use Illuminate\\Foundation\\Auth\\User as Authenticatable;
use Illuminate\\Notifications\\Notifiable;
use Illuminate\\Support\\Facades\\DB;
use Illuminate\\Support\\Facades\\Hash;
use Tymon\\JWTAuth\\Contracts\\JWTSubject;
class User extends Authenticatable implements JWTSubject
{
use Notifiable ;
/* use Commentable;*/
const NAME_MIN_LENGTH = 5;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'image'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
/* protected $hidden = [
'password', 'remember_token',
];*/
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
public function userState()
{
return $this->hasOne(UserState::class);
}
public function incrementArticle()
{
$this->userState->count_article++;
$this->userState->save();
}