سلام استاد ما برنامه ای که شما نوشتید را روی سیستم لوکال خودم تست می کنم درست کار می کنه ولی وقتی که می برم بر روی سرور اصلی بهم خطای not found می ده علت اش چیه استاد همه چیز هم تست کردیم حتی داخل routes/api.php و قبل از دستور Route::resource ما یه echo اوردیم متن echo را وقتی به صورت / صدا می زنیم به ما می ده ولی خود route api را که صدا میزنیم به این شکل /api/v۱/jsan به ما نشون نمی ده و خطای not found برمیگردونه. استاد میشه یه راهنمایی کنید .
Route::group(['prefix'=>'v1'], function (){
Route::resource('jsan','JsanController');
});
<?php
namespace App\Http\Controllers;
use App\Http\Resources\JsanCollection;
use App\Http\Resources\JsanResource;
use App\Jsan;
use App\Rules\MatchFile;
use Illuminate\Http\Request;
class JsanController extends Controller
{
public function index()
{
$jsonFile = Jsan::all();
return response()->json(new JsanCollection($jsonFile),200);
}
public function store(Request $request)
{
$this->validateJsan($request);
$file = $request->file('fileJson');
Jsan::query()->create([
'uri'=>$this->uploadFile($request),
'filename'=>explode('.',$file->getClientOriginalName())[0]
]);
return response()->json([
'message'=>'inserted 1 file'
],201);
}
public function show($id)
{
$json = Jsan::query()->findOrFail($id);
return response()->json([
'data'=> new JsanResource($json),
] ,200);
}
public function edit($id)
{
}
public function update(Request $request, $id)
{
}
public function destroy($id)
{
}
private function validateJsan( $request)
{
$request->validate([
'fileJson'=>['required','file',new MatchFile],
]);
}
private function uploadFile($request)
{
$file = $request->file('fileJson');
$filenameNew = uniqid().'.'.explode('.',$file->getClientOriginalName())[1];
return $file->storeAs('/public/jsonFiles/', $filenameNew);
}
}