Приветствую! Совсем запутался в контроллерах Laravel.
Суть проблемы заключается в том, что я создаю форму для пополняния/снятия денег с баланса, создаю BalanceController для этого и создаю в нём методы increase (для пополнения) и decrease (для снятия):
Вот форма:
Форма для пополнения и снятия с баланса{!! Form::model($user, ['method' => 'PATCH', 'action' => ['BalanceController@increase', $user->balance]]) !!}
{!! Form::token() !!}
{!! Form::label('amount', 'Введите сумму для пополнения') !!}
{!! Form::text('amount', null, ['class' => 'form-control']) !!}
{!! Form::submit('Пополнить', ['class' => 'btn btn-primary']) !!}
{!! Form::close() !!}
{!! Form::model($user, ['method' => 'PATCH', 'action' => ['BalanceController@decrease', $user->balance]]) !!}
{!! Form::token() !!}
{!! Form::label('amount', 'Введите сумму для снятия') !!}
{!! Form::text('amount', null, ['class' => 'form-control']) !!}
{!! Form::submit('Снять', ['class' => 'btn btn-primary']) !!}
{!! Form::close() !!}
Вот мой контроллер:
BalanceControllerclass BalanceController extends Controller
{
public function increase(Request $request, $id)
{
$user = User::findOrFail($id);
$amount = $user->balance->amount;
$balance = $amount + $request->amount;
$user->balance->update(['amount' => $balance]);
return redirect('profile');
}
public function decrease(Request $request, $id)
{
$user = User::findOrFail($id);
$amount = $user->balance->amount;
$balance = $amount - $request->amount;
$user->balance->update(['amount' => $balance]);
return redirect('profile');
}
}
В ошибке, которая у меня возникает пишется:
Action App\Http\Controllers\BalanceController@increase not defined
В роутах у меня указан только
Route::resource('/profile', 'ProfileController');
. Может ли быть проблема вызвана тем, что я не указал в роуте никаких ссылок на мой БалансКонтроллер? Если да, то что указать в роуте? Route::get, Route::put или что-то иное? Заранее благодарю за ответы!