محمدسجاد دباغ
3 سال پیش توسط محمدسجاد دباغ مطرح شد
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="{{ Route('download' , [$Workshop->id,$val->id]) }}" class="btn btn-downlowd">دانلود</a>

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

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


ثبت پرسش جدید
سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

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


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

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


محمدسجاد دباغ
تخصص : برنامه نویس لاراول
@mdabbagh 3 سال پیش مطرح شد
0

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


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

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


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

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


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

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