سلام دوستان
خب جدول posts رو داریم ، جدول tags رو هم داریم یک ارتباط چند به چند ایجاد کردیم
حالا در هر پست چندین تگ داریم که این مشکلی نیست
ولی میخوام بدونم وقتی روی یک تگ کلیک میکنیم ما باید یک route داشته باشیم یا از روش دیگری برای این منظور استفاده کنیم
حالا اینکه جدول tags در شرایطی که وجود داره باید شامل چه فیلد هایی باشه
من گفتگو هایی با این عنوان دیدم ولی یکم کلی بودن و جواب رو نگرفتم
ممنون میشم :)
@Rp76
@mohaligateway
@muhammad
@mrn
@juza66
@ali.bayat
@hesammousavi
@hosseinshirinegad98
@milad
@ajdar9667
و ...
فقط چرا در جدول تگ و پست از tagid و postid استفاده کردین ؟
این که کلا رد شد توضیح دادم که به ۳ تا جدول نیاز داری
۲تاش رو الان داری یکی دیگه باید بسازی
و اینکه تایپ فیلد name (tag name) توی جدول tags باید چی باشه ؟
string
سلام. توی مدل تگ هم رلیشن زدین برای مدل پست، پس میتونین اونجا تگ رو بر اساس slug پیدا کنین و بعد به پستهای اون تگ دسترسی داشته باشین.
سلام وقتتون بخیر!
چرا من اول تگ شدم 😅
خب سوال یکم ناجوره
اره باید Route داشته باشه و با رابطه hasmany پست های اون تگ رو بکشید بیرون!
public funtion posts(){
return $this->hasmany(Post::class);
}
جدول تگ هم اینطوری باشه خوبه فکر کنم
// tag
id
post_id
tag
//post
id,
tag_id
...
بعدشم این رو با ۲ تا جدول نمیشه درست کرد
به یه جدول سومی نیاز داری به این صورت
//pivot table -> name = post_tag
id,tag_id,post_id
//tag table
id,tag
//post table
id,post
و رابطه اینجا اینطوری پیاده سازی میشه
//tag model
public function posts(){
return $this->belongsto(Post::class,"post_tag");
}
//post model
public function tags(){
return $this->belongsto(Tag::class,"post_tag");
}
و برای ذخیره هم به این صورت باید عمل کنی
$tag=Tag::first();
$tag->posts()->sync([
["post_id",$post->id]
]);
$post=Post::first();
$post->tags()->sync([
["tag_id",$tag->id]
])
اگر میخوای اطلاعات قبلی مربوط به تگ یا پستی که انتخاب کردی پاک بشه کد بالا خوبه در غیر اینصورت
پارامتر دوم تابع sync رو با false پر کنی درست میشه
@Rp76
وقتتون بخیر 🤣
یه سوال
فقط چرا در جدول تگ و پست از tag_id و post_id استفاده کردین ؟
و اینکه تایپ فیلد name (tag name) توی جدول tags باید چی باشه ؟
فقط چرا در جدول تگ و پست از tagid و postid استفاده کردین ؟
این که کلا رد شد توضیح دادم که به ۳ تا جدول نیاز داری
۲تاش رو الان داری یکی دیگه باید بسازی
و اینکه تایپ فیلد name (tag name) توی جدول tags باید چی باشه ؟
string
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟