Laravel - Как передать параметр для возврата перенаправления - PullRequest
0 голосов
/ 20 февраля 2020

В моем Laravel -5,8 у меня есть:

public function manager_employee_goal_list($id)
{
    $goal = AppraisalGoal::findOrFail($id);
    $goaldetails = AppraisalGoalDetail::where('appraisal_goal_id', $id)->get();

    return view('appraisal.appraisal_goals.manager_employee_goal_list')
        ->with('goal', $goal)
        ->with('goaldetails', $goaldetails);       
} 

public function manager_employee_goal_approve(Request $request, $id)
{
    $goal = AppraisalGoal::find($id);
    $goal->is_approved = 3;
    $goal->line_manager_comment = $request->line_manager_comment;
    $goal->save();

    Session::flash('success', 'Goal is approved');

    return redirect()->route('appraisal.appraisal_goals.manager_employee_goal_list');        
} 

view: manager_employee_goal_list

<a class="btn btn-xs btn-info" data-toggle="modal" data-target="#approve{{ $goal->id }}" data-original-title="Approve">
   Approve
</a>

<div class="modal fade" id="approve{{ $goal->id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <form action="{route('appraisal.appraisal_goals.manager_employee_goal_approve',['id'=>$goal->id])}}" method="post">
                {{ csrf_field() }}
                <div class="modal-header">
                    Approve Goal
                </div>
                <div class="col-md-12">
                    <div class="form-group">
                        <label class="control-label">Comment</label>
                        <textarea rows="2" name="line_manager_comment" class="form-control" placeholder="Enter Comment here" value="{{old('line_manager_comment')}}" required data-validation-required-message="This field is required"></textarea> 
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                    <button  type="submit" class="btn btn-success btn-ok">Approve Goal</button>
                </div>
            </form>
        </div>
    </div>
</div>

route / web. php

Route::get('appraisal_goals/manager_employee_goal_list/{id?}', 'Appraisal\AppraisalGoalsController@manager_employee_goal_list')->name('appraisal.appraisal_goals.manager_employee_goal_list');
Route::post('appraisal_goals/manager_employee_goal_approve/{id?}', 'Appraisal\AppraisalGoalsController@manager_employee_goal_approve')->name('appraisal.appraisal_goals.manager_employee_goal_approve');

Когда я отправляю на модальной форме, он сохраняет, но не может перенаправить на:

return redirect () -> route ('appraisal.appraisal_goals.manager_employee_goal_list');

Отображает эту ошибку

Слишком мало аргументов для функции App \ Http \ Controllers \ Appraisal \ AppraisalGoalsController :: manager_employee_goal_list (), 0 пройдено и ожидается ровно 1

Как мне решить?

Спасибо

1 Ответ

0 голосов
/ 20 февраля 2020

manager_employee_goal_list метод ожидает идентификатор, все, что вам нужно сделать, это передать этот идентификатор, например, так:

return redirect()->route(
        'appraisal.appraisal_goals.manager_employee_goal_list',
        ['id' => $id]
);

Также я предлагаю вам либо удалить знак вопроса после id в вашем определенном Маршрут или обновить аргументы из вашего метода, сделав их обнуляемыми

public function manager_employee_goal_list($id = null)

и, конечно, вы должны также настроить код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...