php - 在 LARAVEL 6 中发布路线
问题描述
我正在 laravel 6 中开发一个应用程序,但我遇到了一些问题。我有一个用于与我的 BDD 通信的 API,并且我制作了 GET 路由来显示一些数据。我现在正在尝试使用我的应用程序在表单上收集数据来更新我的 BDD 的 POST 路由,但我不明白它是如何工作的。
解决方案
假设您正在创建一个非常常见的博客应用程序
我们应用程序的基本端点:创建、检索列表、检索单个、更新和删除。在 routes/api.php 文件中,我们可以简单地这样做:
Use App\Article;
Route::get('articles', function() {
// If the Content-Type and Accept headers are set to 'application/json',
// this will return a JSON structure. This will be cleaned up later.
return Article::all();
});
Route::get('articles/{id}', function($id) {
return Article::find($id);
});
Route::post('articles', function(Request $request) {
return Article::create($request->all);
});
Route::put('articles/{id}', function(Request $request, $id) {
$article = Article::findOrFail($id);
$article->update($request->all());
return $article;
});
Route::delete('articles/{id}', function($id) {
Article::find($id)->delete();
return 204;
});
现在让我们把这段代码移到它自己的 Controller 中:
php artisan make:controller ArticleController
ArticleController.php
文件:
use App\Article;
class ArticleController extends Controller
{
public function index()
{
return Article::all();
}
public function show($id)
{
return Article::find($id);
}
public function store(Request $request)
{
return Article::create($request->all());
}
public function update(Request $request, $id)
{
$article = Article::findOrFail($id);
$article->update($request->all());
return $article;
}
public function delete(Request $request, $id)
{
$article = Article::findOrFail($id);
$article->delete();
return 204;
}
}
routes/api.php
文件:
Route::get('articles', 'ArticleController@index');
Route::get('articles/{id}', 'ArticleController@show');
Route::post('articles', 'ArticleController@store');
Route::put('articles/{id}', 'ArticleController@update');
Route::delete('articles/{id}', 'ArticleController@delete');