缺少[路由:questions.update]的必需参数,因此在网址中传递了2个参数

时间:2020-08-24 01:05:22

标签: php laravel-7

伙计,我在文件@Around中的URL中传递两个参数时遇到问题

那是我的错误

我用过

web.php

定义默认路由。

在终端中看起来像:

Route::resource('/exams/{exam}/questions', 'Backend\QuestionController');

要重定向,它是这样写的

|        | PUT|PATCH | exams/{exam}/questions/{question}      | questions.update   | App\Http\Controllers\Backend\QuestionController@update                 | web        |
|        |           |                                        |                    |                                                                        | auth       |
|        | DELETE    | exams/{exam}/questions/{question}      | questions.destroy  | App\Http\Controllers\Backend\QuestionController@destroy                | web        |
|        |           |                                        |                    |                                                                        | auth       |
|        | GET|HEAD  | exams/{exam}/questions/{question}/edit | questions.edit     | App\Http\Controllers\Backend\QuestionController@edit                   | web        |
|        |           |                                        |                    |                                                                        | auth       |

还有<a href="{{ route('questions.edit', [ $exams->id, $question->id ]) }}"class="btn btn-warning btn-sm"><i class="far fa-edit"></i></a>

Controller.php

但是如果我已经传递了url指示的参数,我不明白为什么它会失败。

还添加编辑视图

 public function edit(Exam $exams, Question $questions, Category $category){
        return view('question.edit', compact( 'exams' ,'questions', 'category'));
    }

    public function update(QuestionUpdateRequest $request, $id){
        $questions = Question::find($id);
        $questions->description = $request->get('description');
        $questions->iframe = $request->get('iframe');
        $questions->image = $request->get('image');

        $questions->exam_id = $request->get('exam_id');
        $questions->category_id = $request->get('category_id');
        $questions->save();
        return redirect()->route('question.index', $questions->exam_id);
    }

1 个答案:

答案 0 :(得分:1)

#main * {
  box-sizing: border-box;
}

#left-panel {
  float: left;
  width: 250px;
}

#right-panel {
  float: left;
  width: 120px;
}

#left-panel h4,
#right-panel h4 {
  line-height: 16px;
  margin: 0 0 0.4em;
}

.item-container.ui-droppable-active:empty {
  background: #efe7ff;
}

.item-container.ui-droppable-active.ui-droppable-hover:empty {
  background: #d0bcfa;
}

.item-list > div {
  width: 112px;
  height: 112px;
  padding: 0.4em;
  margin: 0 0.4em 0.4em 0;
  text-align: center;
}

.item-list > div h5 {
  margin: 0 0 0.4em;
  cursor: move;
}

.item-list > div img {
  width: 100%;
  cursor: move;
}

.item-container {
  border: 1px solid #dddddd;
}

.sample-image {
  width: 75px;
  height: 75px;
  margin: 0 auto;
  background-repeat: no-repeat;
  background-size: contain;
  background-position-x: center;
  background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzQiIGhlaWdodD0iNzQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGNpcmNsZSBjeD0iMzciIGN5PSIzNyIgcj0iMzciIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcikiLz4KICA8cGF0aCBkPSJNMzcuNTAwMyA1OEM0OS4zNzQ0IDU4IDU5IDQ4LjM3NDMgNTkgMzYuNVM0OS4zNzQ0IDE1IDM3LjUwMDMgMTVDMjUuNjI2MSAxNSAxNiAyNC42MjU3IDE2IDM2LjVjMCAuMTY3MS4wMDE5LjMzMzguMDA1Ny41SDE2djMwLjQ2NzJjMi43NDQgMS44OTUgNS43NTY2IDMuNDI4OCA4Ljk2OSA0LjUzMjhIMjVWNTMuOTk0OEMyOC41MjI1IDU2LjUxNjEgMzIuODM4MSA1OCAzNy41MDAzIDU4eiIgZmlsbD0iI2ZmZiIvPgogIDxwYXRoIGQ9Ik01MCAzNi41QzUwIDQzLjQwMzYgNDQuNDAzNyA0OSAzNy41MDAxIDQ5IDMwLjU5NjYgNDkgMjUgNDMuNDAzNiAyNSAzNi41UzMwLjU5NjYgMjQgMzcuNTAwMSAyNEM0NC40MDM3IDI0IDUwIDI5LjU5NjQgNTAgMzYuNXoiIGZpbGw9IiNGQ0I0MkYiLz4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhciIgeDE9IjM3IiB5MT0iMCIgeDI9IjM3IiB5Mj0iNzQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0ZCQjMyRiIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii41MDQ3MzkiIHN0b3AtY29sb3I9IiNDMTE1MTEiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQzExNDExIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KPC9zdmc+');
}

那是你的路线,但是

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

<section id="main" class="ui-widget ui-helper-clearfix">

    <div id="left-panel" class="item-list">
        <div class="item-container"></div>  
        <div class="item-container"></div>
        <div class="item-container"></div>
        <div class="item-container"></div>
    </div>

    <div id="right-panel" class="item-list">
        <div class="item-container"></div>
        <div class="item-container"></div>
        <div class="item-container"></div>
        <div class="item-container"></div>
    </div>

</section>

这是您的操作。 您在表单操作中缺少考试ID。

应该是

|        | PUT|PATCH | exams/{exam}/questions/{question}      | questions.update   | App\Http\Controllers\Backend\QuestionController@update                 | web        |