Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija الجزء الخامس
فهاد الجزء الخامس من Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija غادي نزيدوا ل models ديالنا وغادي نزيدو حتى les relations ما بيناتهم.
نظرة سريعة بالفيديو
1- إضافة Laravel Model Category
غادي تزيد Laravel Model سميه Category ولي فيه غادي تكون les relations الخاصة به.
الكود ديال الملف هو :
//
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
use HasFactory;
public function questions()
{
return $this->hasMany(Question::class);
}
public function getRouteKeyName()
{
return 'slug';
}
}
2- إضافة Laravel Model Question
غادي تزيد Laravel Model سميه Question ولي فيه غادي تكون les relations الخاصة به.
الكود ديال الملف هو :
//
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Question extends Model
{
use HasFactory;
protected $fillable = [
'title', 'body', 'user_id', 'collective_id',
'votes', 'category_id', 'slug', 'deleted_at'
];
public function user()
{
return $this->belongsTo(User::class);
}
public function category()
{
return $this->belongsTo(Category::class);
}
public function comments()
{
return $this->hasMany(Comment::class);
}
public function collective()
{
return $this->belongsTo(Collective::class)->withDefault([
'title' => 'Not Availlable'
]);
}
public function owner($user_id)
{
return auth()->user()->id === $user_id;
}
public function getRouteKeyName()
{
return 'slug';
}
}
3- إضافة Laravel Model Collective
غادي تزيد Laravel Model سميه Collective ولي فيه غادي تكون les relations الخاصة به.
الكود ديال الملف هو :
//
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Collective extends Model
{
use HasFactory;
protected $fillable = [
'title', 'description', 'user_id',
'members', 'category_id', 'slug', 'deleted_at'
];
public function questions()
{
return $this->hasMany(Question::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
public function category()
{
return $this->belongsTo(Category::class);
}
public function owner($user_id)
{
return auth()->user()->id === $user_id;
}
public function getRouteKeyName()
{
return 'slug';
}
}
4- إضافة Laravel Model Comment
غادي تزيد Laravel Model سميه Comment ولي فيه غادي تكون les relations الخاصة به.
الكود ديال الملف هو :
//
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
use HasFactory;
protected $fillable = ['body', 'user_id', 'question_id'];
public function user()
{
return $this->belongsTo(User::class);
}
public function getCreatedAtAttribute($value)
{
return \Carbon\Carbon::parse($value)->format('d-M-Y H:i:s');
}
}