سلام دوستان
من یه فرم دارم که میخوام کاربر داده هایی داخلش وارد کنه، در مرحله آخر با انتخاب چندتا فایل اونها آپلود میشن و در نهایت کاربر با زدن دکمه X داده هاذخیره میشن.
من قسمت انتخاب فایل رو بصورت کامپوننت در vuejs ایجاد کردم و فایل داخل کامپوننت آپلود میشه
مشکل من اینه که اطلاعات فایل باید در یه جدول که با رابطه پلی مرفیک ایجاد شده (fileable) ذخیره بشن ولی قبل از زدن دکمه X داده ای ذخیره نشده که ID اون رو در جدول fileable ذخیره کنم.
لطفا من رو راهنمایی کنید
سلام دوست من 🖐
امیدوارم حالت خوب و عالی باشی✨
برای ذخیره فایلهای آپلود شده به همراه دادههای دیگر در Laravel و Vue.js میتوانید مراحل زیر را دنبال کنید:
ساخت جدول Fileable: در پایگاه دادهای خود، یک جدول برای ذخیره فایلها به همراه رابطهی پلیمورفیک با جداول دیگر ایجاد کنید. این جدول میتواند مانند جدول files
باشد و دارای فیلدهایی مثل file_name
(نام فایل)، file_path
(مسیر فایل) و ... باشد. همچنین باید فیلد fileable_id
و fileable_type
را برای رابطه پلیمورفیک اضافه کنید تا بتوانید به دادههای مختلف متصل شوید.
ساخت مدل File: یک مدل به نام File
ایجاد کنید که با جدول files
مرتبط باشد و از رابطه پلیمورفیک fileable
به عنوان فایلهای متصل به دادههای دیگر استفاده کنید.
Vue.js و آپلود فایل: در Vue.js، برای آپلود فایلها از کتابخانههای مثل vue-dropzone
یا vue2-dropzone
استفاده کنید. با استفاده از این کتابخانهها، کاربران میتوانند فایلها را آپلود کرده و شما میتوانید آدرس فایل و سایر اطلاعات مرتبط با فایل را در متغیرهای Vue.js ذخیره کنید.
ذخیره اطلاعات: وقتی کاربران فایلها را آپلود کردند و دیگر اطلاعات را وارد کردند، شما میتوانید درخواست POST به یک روت Laravel ارسال کنید. در کنترلر مربوط به این روت، اطلاعات فایلها را ذخیره کرده و شناسه ایجاد شده برای هر فایل را در متغیرهای Vue.js ذخیره کنید.
رابطه پلیمورفیک: در مرحله قبل شما شناسههای فایلها را در متغیرهای Vue.js ذخیره کردهاید. حالا با استفاده از رابطه پلیمورفیک Laravel، میتوانید این فایلها را به دادههای مختلف متصل کنید. به عنوان مثال:
// در کنترلر
$file = new File([
'file_name' => $fileName,
'file_path' => $filePath,
]);
$entity = YourModel::find($entityId); // داده مرتبط
$entity->files()->save($file);
در این مثال، YourModel
مدل دادههای مختلف شما است و $entityId
شناسه آن داده است. با استفاده از روابط پلیمورفیک Laravel میتوانید فایلهای آپلود شده را به هر دادهای متصل کنید.
این مراحل به شما امکان میدهند تا فایلهای آپلود شده را به همراه دادههای مرتبط با آنها در سیستم خود ذخیره کنید و به راحتی با آنها کار کنید. مهمترین بخش این است که از روابط پلیمورفیک Laravel استفاده کنید تا به سادگی به دادههای مختلف دسترسی داشته باشید.
امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟