在api.php中添加的自定义路由上找不到laravel 404路由
我到处寻找答案,但到处都找不到。我创建了一个laravel和angular项目。除了2个api路由外,其他一切都可以正常工作。/partsorder和/partsstock路径不工作。它们确实出现在php artisan路由:列表中。php artisan route:clear也不能解决此问题。我可以访问该组的订单路线没有问题 以下是api文件中存在问题的部分:在api.php中添加的自定义路由上找不到laravel 404路由,php,angular,laravel,Php,Angular,Laravel,我到处寻找答案,但到处都找不到。我创建了一个laravel和angular项目。除了2个api路由外,其他一切都可以正常工作。/partsorder和/partsstock路径不工作。它们确实出现在php artisan路由:列表中。php artisan route:clear也不能解决此问题。我可以访问该组的订单路线没有问题 以下是api文件中存在问题的部分: Route::group(['prefix' => 'parts'], function () { Route::middl
Route::group(['prefix' => 'parts'], function () {
Route::middleware('auth:api')->get('/', 'App\Http\Controllers\PartController@index')->name('parts.index');
Route::middleware('auth:api')->get('/partsorder', 'App\Http\Controllers\PartController@getPartsOrder')->name('parts.getPartsOrder');
Route::middleware('auth:api')->get('/partsstock', 'App\Http\Controllers\PartController@getPartsStock')->name('parts.getPartsStock');
Route::middleware('auth:api')->get('{part}', 'App\Http\Controllers\PartController@show')->name('parts.show');
Route::middleware('auth:api')->post('/', 'App\Http\Controllers\PartController@store')->name('parts.store');
Route::middleware('auth:api')->put('{part}', 'App\Http\Controllers\PartController@update')->name('parts.update');
Route::middleware('auth:api')->delete('{part}', 'App\Http\Controllers\PartController@destroy')->name('parts.destroy');
});
这是我的控制器文件:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Traits\ApiController;
use App\Http\Requests\Part\StorePart;
use App\Http\Requests\Part\UpdatePart;
use App\Http\Resources\Part\PartCollection;
use App\Http\Resources\Part\PartResource;
use App\Models\Part;
use Illuminate\Http\Request;
use Exception;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Storage;
class PartController extends Controller
{
use ApiController;
/**
* Display a listing of the resource.
*
* @return PartCollection
*/
public function index()
{
$this->setMaxApiLimit(100);
$parts = Part::paginate($this->getPaginationLimit());
PartCollection::wrap('parts');
return new PartCollection($parts);
}
/**
* Display a listing of the resource.
*
* @return PartCollection
*/
public function getPartsOrder()
{
$parts = Part::where(['order' => 1])->get();
PartCollection::wrap('parts');
return new PartCollection($parts);
}
public function getPartsStock()
{
$parts = Part::where(['stock' => 0])->get();
PartCollection::wrap('parts');
return new PartCollection($parts);
}
/**
* Store a newly created resource in storage.
*
* @param StorePart $request
* @return PartResource
*/
public function store(StorePart $request)
{
$part = new Part([
'name' => $request->input('name'),
'device_id' => $request->input('device_id'),
'supplier' => $request->input('supplier'),
'stock' => $request->input('stock'),
'price' => $request->input('price'),
'order' => $request->input('order'),
]);
$part->save();
PartResource::wrap('part');
return new PartResource($part);
}
/**
* Display the specified resource.information_schema
*
* @param Part $Part
* @return PartResource
*/
public function show(Part $part)
{
PartResource::wrap('part');
return new PartResource($part);
}
/**
* Update the specified resource in storage.
*
* @param UpdatePart $request
* @param Part $Part
*
* @return PartResource
*/
public function update(UpdatePart $request, Part $part)
{
$part->fill([
'name' => $request->input('name'),
'device_id' => $request->input('device_id'),
'supplier' => $request->input('supplier'),
'stock' => $request->input('stock'),
'price' => $request->input('price'),
'order' => $request->input('order')
]);
$part->save();
PartResource::wrap('part');
return new PartResource($part);
}
/**
* Remove the specified resource from storage.
*
* @param Part $Part
* @return Response
*/
public function destroy(Part $part)
{
try {
$part->delete();
} catch (Exception $e) {
return response([
'message' => 'Unable to delete part.',
], 500);
}
return response([
'status' => 'success',
'message' => 'part has been successfully deleted.',
], 200);
}
}
我一直在努力解决这几天现在,任何帮助将不胜感激。
如果您需要更多的信息代码,请让我知道
提前感谢其中
Route::middleware('auth:api')->get('/partsorder', 'App\Http\Controllers\PartController@getPartsOrder')->name('parts.getPartsOrder');
Route::middleware('auth:api')->get('/partsstock', 'App\Http\Controllers\PartController@getPartsStock')->name('parts.getPartsStock');
Route::middleware('auth:api')->get('{part}', 'App\Http\Controllers\PartController@show')->name('parts.show');
试着像这样改变路线或者做任何你感兴趣的事情
Route::middleware('auth:api')->get('/show/{part}', 'App\Http\Controllers\PartController@show')->name('parts.show');
可能有用。
谢谢您谢谢您的回复,很遗憾,这不起作用。请尝试仅更改此路由
route::middleware('auth:api')->get('{part}','App\Http\Controllers\PartController@show')->name('parts.show')奇怪的是,我把路线改成了你说的。没有改变阿努格拉尔的路线。从laravel中清除缓存后,它仍然会返回部件,而不会告诉我该路由不允许在路由声明的开头使用route::get({part}
),因为laravel应用程序可以使用您作为{part}提供的任何路由。此处:route::get('/partsstock'
)将被视为Route::get({partsstock}')
。
Route::middleware('auth:api')->get('/partsorder', 'App\Http\Controllers\PartController@getPartsOrder')->name('parts.getPartsOrder');
Route::middleware('auth:api')->get('/partsstock', 'App\Http\Controllers\PartController@getPartsStock')->name('parts.getPartsStock');
Route::middleware('auth:api')->get('{part}', 'App\Http\Controllers\PartController@show')->name('parts.show');
Route::middleware('auth:api')->get('/show/{part}', 'App\Http\Controllers\PartController@show')->name('parts.show');