🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۵ ahmad Ghanavati
اجرا نشدن آپلود آدرس فایل در url دیتابیس
جامعه لاراول ایجاد شده در ۲۷ اردیبهشت ۱۴۰۱

با سلام و خسته نباشید خدمت منتور و استاد گرامی

بنده برای آپلود کردن آدرس url در دیتابیس همانند شما پیش رفتم ولی متاسفانه به خطا برخورد کردم ممنون میشم راهنمایی ام بکنید

متن خطا

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'file' in 'field list' (SQL: insert into `videos` (`name`, `category_id`, `length`, `slug`, `description`, `thumbnail`, `url`, `file`, `user_id`, `updated_at`, `created_at`) values (رازبقا, 5, 220, raz-bagha, این فیلم سینمایی است که باعث شادی شما خواهد شد, ?, contracts/UGTiAM0c9sMVLlJqsG76eYJjVmmYVg8hsu0tnP0A.mp4, C:\\xampp\\tmp\\phpC0A6.tmp, 42, 2022-05-17 08:45:51, 2022-05-17 08:45:51))

صفحه VideoController

public function store(Request $request)
   {
        $path=Storage::putFile('contracts',$request->file);
        $request->merge([
            'url'=>$path
        ]);
        
        $request->user()->videos()->create($request->all());
        return redirect()->route('index')->with('success',__('messages.success'));
   }

صفحه create.blade

<div class="col-md-6">
   <label>@lang('videos.uploadFilm')label>
   <input type="file" id="file" name="file"  class="form-control" value="{{ old('url') }}">
div>

سلام دوست عزیز

لطفا پروژتون رو در گیتهاب پوش کرده و آدرسش رو برای بررسی قرار بدین

محمد گازری ۲۷ اردیبهشت ۱۴۰۱، ۰۹:۲۵

درود مجدد لینک پروژه

https://github.com/ahmad-ghanavati/videos

ahmad Ghanavati ۲۷ اردیبهشت ۱۴۰۱، ۱۱:۱۴

سلام مجدد

توی مدلتون باید پراپرتی fillable رو داشته باشید که اگر چیزی خارج از ریکوستتون اومد و شما از all استفاده کردین به خطا نخورید

این خط رو به مدل Video اضافه کنید خطاتون برطرف میشه

    protected $fillable = [
        'name', 'description', 'length', 'url', 'slug', 'thumbnail', 'category_id'
    ];
محمد گازری ۲۷ اردیبهشت ۱۴۰۱، ۱۲:۵۷

ممنونم مشکلم حل شد فقط یه سوال دارم ، من از protected $guarded استفاده کرده بودم ، که هیچ مانعی برای انواع ریکوئیست‌ها نباشه چرا مشخصا باید از fillable باید استفاده میکردم بسیار ممنون که وقت میزارید

ahmad Ghanavati ۲۷ اردیبهشت ۱۴۰۱، ۱۳:۵۹

دلیلش اینه که fillable میاد از تکنیک whitelist استفاده میکنه و فقط فیلدهایی رو وارد کوئری میکنه که توی لیستش باشن

بهترین پاسخ
محمد گازری ۲۷ اردیبهشت ۱۴۰۱، ۱۴:۱۹