راکت
حل شده

پیشنهاد برای احرازهویت دانلود فایل

4 پاسخ

سلام وقت بخیر
در ابتدا چک میکنم که آیا چنین کاربری به چنین دوره ای دسترسی دارد یا خیر!

$order = Orders::where(['workshop_id' => $workshop_id , 'user_id' => Auth::user()->id])->firstOrFail();
$is_accessible = $order->order_status;

بعد از اون باید چک کنم فایلی که درخواست دانلودش داده شده متعلق به این دوره هست یا خیر!

$topic = Topic::where(['workshop_id' => $workshop_id , 'file_id' => $file_id])->firstOrFail();

در نهایت اگر هر دو شرط بالا برقرار بود اجازه دانلود داده شود.

if ($is_accessible && $topic) {
            $file_item = File::find($file_id);
            return response()->download( $file_item->file_url );
        }else{
            dd('شما دسترسی به این فایل ندارید');
        }

طبق این روش نیاز هست دو پارامتر به روتر داده شود یکی fileid و دیگری workshopid که متاسفانه به ارور 404 برخورد میکنم.

Route::get('/download/{workshop_id}/{file_id}', 'Admin\FilesController@download')->name('download');
<a href="https://roocket.ir/{{ Route('download' , [$Workshop->id,$val->id]) }}" class="btn btn-downlowd">دانلود</a>

دلیل ارور 404 چیست؟

پیشنهاد شما برای احرازهویت دانلود چیست؟ راهکار های بهتر خودتون رو لطفا به اشتراک بزارید.
متشکرم

ثبت پرسش جدید

پاسخ‌ها

4
سبحان مولایی
سبحان مولایی
@websaz

تخصص: برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native

بهترین پاسخ

متد firstOrFail() دنبال اولین نتیجه می گردد اگر پیدا نکرد به شما اررور از تایپ Illuminate\Database\Eloquent\ModelNotFoundException
که اگر کنترل نشود از طرف لاراول اررور 404 نمایش داده می شود.
@msdabbagh

سبحان مولایی
سبحان مولایی
@websaz

تخصص: برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native

سلام دلیل اررور 404 شما firstOrFail() است.
@msdabbagh

محمدسجاد دباغ
محمدسجاد دباغ
@mdabbagh

تخصص: برنامه نویس لاراول

@websaz
احسنت حل شد! اما چرا؟
این روش من همچیش به نظرم خوبه به جز اینکه با Adm نمیشه دانلود کرد.

شاید پاسخ شما همین‌جا باشد

سبحان مولایی
سبحان مولایی
@websaz

تخصص: برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native

الان در اینجا یا order پیدا نمی شود یا topic که می توانید با استفاده از dd این رو تست بگیرید.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام