Как правило, вы не должны передавать идентификатор пользователя на маршруте, если в контроллере не было какой-либо аутентификации. например. Администратор обновляет пользователя. Вместо этого используйте объект Auth::user()
в контроллере.
Что касается вашего вопроса, есть много вариантов, и это зависит только от вас, но возможным способом сделать это было бы использовать для этого resource route\controller.
Route::resource('user/subscription', 'User\SubscriptionController');
Затем контроллер будет выглядеть примерно так:
<?php
namespace App\Http\Controllers\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class SubscriptionController extends Controller
{
public function index()
{
// get user
$user = Auth::user();
// list all user subscriptions
}
public function store(Request $request)
{
// get user
$user = Auth::user();
if(empty($user)) {
// create user
}
// create and process subscription for the user
// possibly using a plan id in the $request
}
public function show($id)
{
// get user
$user = Auth::user();
// return user subscription details for $id
}
public function update(Request $request, $id)
{
// get user
$user = Auth::user();
// update or change user subscription
// possibly using a plan id in the $request
}
public function destroy($id)
{
// get user
$user = Auth::user();
// cancel user subscription with $id
}
}
И ваши маршруты будут выглядеть так:
GET
user/subscription
список всех подписок пользователя index()
POST
user/subscription
создать пользователя Подписка store(Request $request)
GET
user/subscription/{subscription_id}
показывает подписки пользователя show($id)
PUT/PATCH
user/subscription/{subscription_id}
обновления подписки пользователя update($id)
DELETE
user/subscription/{subscription_id}
отменить подписку пользовательской destroy($id)
Возможных дубликат [REST API - PUT vs PATCH с примерами реальной жизни] (http://stackoverflow.com/questions/28459418/rest-api-put-vs-patch-with-real-life-examples). На все ваши вопросы ответили в этом комментарии и подробно описаны. Пожалуйста, прочитайте. – Ohgodwhy
@ Ohgodwhy Я прочитал много информации о REST API. Я не мог найти ответа. И в этих ответах также нет определенной и лучшей практики по моему вопросу. Если у вас есть ответ, ответьте. – ivahidmontazer
Что вы подразумеваете под «потому что подписка - это транзакция и 2 отдельный запрос (до/после банка)». Его недостаточно ясно. – Gayan