Метод put
Метод put класса Route применяется для регистрации маршрутов, которые обрабатывают HTTP-запросы с методом PUT. PUT-запросы обычно используются для полного обновления ресурса на сервере. Первым параметром передаётся URI маршрута, вторым - действие (контроллер или замыкание), которое будет обработано при совпадении. Метод возвращает экземпляр Route для построения цепочек дополнительных настроек.
Синтаксис
<?php
use Illuminate\Support\Facades\Route;
Route::put($uri, $action);
?>
Пример
Давайте зарегистрируем маршрут для обновления пользователя по идентификатору с использованием замыкания:
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
Route::put('/user/{id}', function (Request $request, $id) {
// Логика обновления пользователя
return "User with ID {$id} updated successfully";
});
?>
Результат выполнения кода при отправке PUT-запроса на /update-user/1:
"User with ID 1 updated successfully"
Пример
Давайте зарегистрируем маршрут для обновления статьи через контроллер:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ArticleController;
Route::put('/articles/{id}', [ArticleController::class, 'update']);
?>
<?php
namespace App\Http\Controllers;
use App\Models\Article;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
public function update(Request $request, $id)
{
$article = Article::findOrFail($id);
$article->title = $request->input('title');
$article->text = $request->input('text');
$article->save();
return $article;
}
}
?>
Результат выполнения кода при обновлении статьи с id равным 1:
{
"id": 1,
"title": "Updated article",
"text": "Updated content",
"updated_at": "2026-09-08T10:30:00.000000Z"
}
Пример
Давайте зарегистрируем маршрут с ограничениями на параметр через where:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\CategoryController;
Route::put('/category/{id}', [CategoryController::class, 'update'])
->where('id', '[0-9]+')
->name('category.update');
?>
<?php
namespace App\Http\Controllers;
use App\Models\Category;
use Illuminate\Http\Request;
class CategoryController extends Controller
{
public function update(Request $request, $id)
{
$category = Category::findOrFail($id);
$category->name = $request->input('name');
$category->save();
return response()->json([
'message' => 'Category updated',
'category' => $category
]);
}
}
?>
Результат выполнения кода:
{
"message": "Category updated",
"category": {
"id": 1,
"name": "New Category Name",
"updated_at": "2026-09-08T10:35:00.000000Z"
}
}