سلام وقت بخیر
در ابتدا چک میکنم که آیا چنین کاربری به چنین دوره ای دسترسی دارد یا خیر!
$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 چیست؟
پیشنهاد شما برای احرازهویت دانلود چیست؟ راهکار های بهتر خودتون رو لطفا به اشتراک بزارید.
متشکرم
تخصص: برنامهنویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
متد firstOrFail() دنبال اولین نتیجه می گردد اگر پیدا نکرد به شما اررور از تایپ Illuminate\Database\Eloquent\ModelNotFoundException
که اگر کنترل نشود از طرف لاراول اررور 404 نمایش داده می شود.
@msdabbagh
تخصص: برنامهنویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
سلام دلیل اررور 404 شما firstOrFail() است.
@msdabbagh
@websaz
احسنت حل شد! اما چرا؟
این روش من همچیش به نظرم خوبه به جز اینکه با Adm نمیشه دانلود کرد.
شاید پاسخ شما همینجا باشد
تخصص: برنامهنویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
الان در اینجا یا order پیدا نمی شود یا topic که می توانید با استفاده از dd این رو تست بگیرید.