سلام
برای جدولی که در حال حاضر موجود هستش یه migration ساختم و خواستم 2تا از فیلد ها رو primary بکنم به روش زیر
$table->primary(['title' , 'link_id']);
چون فیلد title از نوع text هستش خطایی میده که باید براش key length تعریف بشه.
سوالم اینه که این کار توی همین دستور قابل انجامه یا کار دیگه باید بکنم؟
سلام
اگه فیلد title از نوع text هستش نیاز به تعریف length نداره ، می تونید به همین روش که رفتید پیش برید.
@pjalili83
@samanzdev
متاسفانه با خطای زیر مواجه میشه
Syntax error or access violation: 1170 BLOB/TEXT column 'title' used in key specification without a key length (SQL: alter table news
add primary key news_title_link_id_primary
(title
, link_id
))
یک عکس از کد هاتون بدید.
شما می خوایید فیلد title مثل فیلد id خود به خود پر بشه؟
@pjalili83
@samanzdev
@ali.bayat
نه
من میخوام از ورود duplicate جلوگیری کنم.
اگر یه رکورد با یه title و linkid وارد شد دیگه رکورد مشابهی با این دو فیلد وارد نشه
@samanzdev
آخه ممکنه title مشابه باشه ولی link_id متفاوت.این از نظر منطق اون اپ مشکلی نیست.
اگر هر دو تکراری باشن مغایر با منطقه
متوجه منظورتون نشدم.
لطفا اگه میشه یه عکسی از کد هاتون بفرستید، به این شکل راحتتر میشه مشکلتون رو حل کرد.
@pjalili83
@samanzdev
کدوم بخش از کد ها مد نظرتون هست که ارسال کنم؟
فرض کنید یه رکورد داریم که link_id = 2 هستش و title=apple
حالا اگر یه رکورد جدید بخواد ذخیره بشه که link_id = 1 هستش و title=apple ایرادی نداره و میتونه ذخیره بشه.اما اگر link_id = 2 هستش و title=apple این رکورد تکراریه و نباید ذخیره بشه.
@samanzdev
بینیدفرض کنید یه رکورد داریم که link_id = ۲ هستش و title=apple
حالا اگر یه رکورد جدید بخواد ذخیره بشه که link_id = ۱ هستش و title=apple ایرادی نداره و میتونه ذخیره بشه.
همچنین اگر link_id=2 هستش و title=orange مشکلی نداره.
اما اگر link_id = ۲ هستش و title=apple این رکورد تکراریه و نباید ذخیره بشه.
اگر هر دو فیلد باهم تکراری باشن مغایر با اون منطقه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟