Too few arguments to function App\Http\Controllers\EventController::edit(), 0 passed and exactly 1 expected

huangapple go评论135阅读模式
英文:

Too few arguments to function App\Http\Controllers\EventController::edit(), 0 passed and exactly 1 expected

问题

"嗨,各位,请帮助我,我是 Laravel 新手,我不知道为什么会出现这个错误。

Symfony\Component\Debug\Exception\FatalThrowableError
App\Http\Controllers\EventController::edit() 函数的参数太少,期望传入 1 个参数,但传入了 0 个。

这是我的 EventController:

  1. public function show()
  2. {
  3. $events = Event::all();
  4. return view('superadminpage.admin_event.admin_update_event')->with('events', $events);
  5. }
  6. /**
  7. * Show the form for editing the specified resource.
  8. *
  9. * @param int $id
  10. * @return \Illuminate\Http\Response
  11. */
  12. public function edit($id)
  13. {
  14. $events = Event::find($id);
  15. return view('superadminpage.admin_event.admin_editform', compact('events', 'id'));
  16. }
  17. /**
  18. * Update the specified resource in storage.
  19. *
  20. * @param \Illuminate\Http\Request $request
  21. * @param int $id
  22. * @return \Illuminate\Http\Response
  23. */
  24. public function update(Request $request, $id)
  25. {
  26. $this->validate($request,[
  27. 'title' => 'required',
  28. 'color' => 'required',
  29. 'start_date' => 'required',
  30. 'end_date' => 'required',
  31. ]);
  32. $events = Event::find($id);
  33. $events->title = $request->input('title');
  34. $events->color = $request->input('color');
  35. $events->start_date = $request->input('start_date');
  36. $events->end_date = $request->input('end_date');
  37. $events->save();
  38. return redirect('admin_calendar')->with('success', '已添加');
  39. }

这是我的路由:

  1. Route::get('/admin_update_event', 'EventController@show');
  2. Route::get('/admin_editform', 'EventController@edit');

这是我的 admin_update_event.blade.php:

  1. @foreach ($events as $event)
  2. <tbody>
  3. <tr>
  4. <td>{{ $event->id}}</td>
  5. <td>{{ $event->title}}</td>
  6. <td>{{ $event->color}}</td>
  7. <td>{{ $event->start_date}}</td>
  8. <td>{{ $event->end_date}}</td>
  9. <th> <a href="{{ route('edit',['id' => $event->id, 'event' => 1]) }}">
  10. 编辑 </a>
  11. </th>
  12. </tr>
  13. </tbody>
  14. @endforeach

这是我的 admin_editform.blade.php:

  1. <form method="POST" action="{{action('EventController@update')}}">
  2. {{csrf_field() }}
  3. <div class="container">
  4. <div class="jumnbotron">
  5. <h1> 更新事件 </h1>
  6. <br>
  7. <input type="hidden" name="_method" value="UPDATE" />
  8. <div class="form-group">
  9. <label for="">输入事件的名称</label>
  10. <input type="text" class="form-control" name="title" placeholder="输入名称" value="{{ $events->title}}">
  11. </div>
  12. <div class="form-group">
  13. <label for="">选择颜色</label>
  14. <input type="color" class="form-control" name="color" placeholder="选择颜色" value="{{ $events->color}}">
  15. </div>
  16. <div class="form-group">
  17. <label for="">输入事件的开始日期</label>
  18. <input type="datetime-local" class="form-control" name="start_date" class="date" placeholder="输入开始日期" value="{{ $events->start_date}}">
  19. </div>
  20. <div class="form-group">
  21. <label for="">输入事件的结束日期</label>
  22. <input type="datetime-local" class="form-control" name="end_date" class="date" placeholder="输入结束日期" value="{{ $events->end_date}}">
  23. </div>
  24. {{ method_field('PUT') }}
  25. <input type="submit" name="submit" class="btn btn-primary" value="添加事件数据"/>
  26. </div>
  27. </div>
  28. </form>
英文:

hi guys please help me im new to the laravel i don't know why i have this error

Symfony\Component\Debug\Exception\FatalThrowableError
Too few arguments to function App\Http\Controllers\EventController::edit(), 0 passed and exactly 1 expected

this is my EventController

  1. &#39; public function show()
  2. {
  3. $events = Event::all();
  4. return view(&#39;superadminpage.admin_event.admin_update_event&#39;)-&gt;with(&#39;events&#39;, $events);
  5. }
  6. /**
  7. * Show the form for editing the specified resource.
  8. *
  9. * @param int $id
  10. * @return \Illuminate\Http\Response
  11. */
  12. public function edit($id)
  13. {
  14. $events = Event::find($id);
  15. return view(&#39;superadminpage.admin_event.admin_editform&#39;, compact(&#39;events&#39;, &#39;id&#39;));
  16. }
  17. /**
  18. * Update the specified resource in storage.
  19. *
  20. * @param \Illuminate\Http\Request $request
  21. * @param int $id
  22. * @return \Illuminate\Http\Response
  23. */
  24. public function update(Request $request, $id)
  25. {
  26. $this-&gt;validate($request,[
  27. &#39;title&#39; =&gt; &#39;required&#39;,
  28. &#39;color&#39; =&gt; &#39;required&#39;,
  29. &#39;start_date&#39; =&gt; &#39;required&#39;,
  30. &#39;end_date&#39; =&gt; &#39;required&#39;,
  31. ]);
  32. $events = Event::find($id);
  33. $events-&gt;title = $request-&gt;input(&#39;title&#39;);
  34. $events-&gt;color = $request-&gt;input(&#39;color&#39;);
  35. $events-&gt;start_date = $request-&gt;input(&#39;start_date&#39;);
  36. $events-&gt;end_date = $request-&gt;input(&#39;end_date&#39;);
  37. $events-&gt;save();
  38. return redirect(&#39;admin_calendar&#39;)-&gt;with(&#39;success&#39;, &#39; has been added&#39;);
  39. }

'

this is my route

  1. &quot;Route::get(&#39;/admin_update_event&#39;, &#39;EventController@show&#39;);
  2. &quot;Route::get(&#39;/admin_editform&#39;, &#39;EventController@edit&#39;);

this is my admin_update_event.blade.php

  1. @foreach ($events as $event)
  2. &lt;tbody&gt;
  3. &lt;tr&gt;
  4. &lt;td&gt;{{ $event-&gt;id}}&lt;/td&gt;
  5. &lt;td&gt;{{ $event-&gt;title}}&lt;/td&gt;
  6. &lt;td&gt;{{ $event-&gt;color}}&lt;/td&gt;
  7. &lt;td&gt;{{ $event-&gt;start_date}}&lt;/td&gt;
  8. &lt;td&gt;{{ $event-&gt;end_date}}&lt;/td&gt;
  9. &lt;th&gt; &lt;a href=&quot;{{ route(&#39;edit&#39;,[&#39;id&#39; =&gt; $events-&gt;id, &#39;event&#39; =&gt; 1]) }}&quot;&gt;
  10. Edit &lt;/a&gt;
  11. &lt;/th&gt;
  12. &lt;/tr&gt;
  13. &lt;/tbody&gt;
  14. @endforeach

this is my admin_editform.blade.php

  1. &lt;form method=&quot;POST&quot; action=&quot;{{action(&#39;EventController@update&#39;)}}&quot;&gt;
  2. {{csrf_field() }}
  3. &lt;div class=&quot;container&quot;&gt;
  4. &lt;div class=&quot;jumnbotron&quot;&gt;
  5. &lt;h1&gt; Update Event &lt;/h1&gt;
  6. &lt;br&gt;
  7. &lt;input type=&quot;hidden&quot; name=&quot;_method&quot; value=&quot;UPDATE&quot; /&gt;
  8. &lt;div class=&quot;form-group&quot;&gt;
  9. &lt;label for=&quot;&quot;&gt;Enter name of the Event&lt;/label&gt;
  10. &lt;input type=&quot;text&quot; class=&quot;form-control&quot; name=&quot;title&quot; placeholder=&quot;Enter The name&quot; value=&quot;{{ $events-&gt;title}}&quot;&gt;
  11. &lt;/div&gt;
  12. &lt;div class=&quot;form-group&quot;&gt;
  13. &lt;label for=&quot;&quot;&gt;Choose a Color&lt;/label&gt;
  14. &lt;input type=&quot;color&quot; class=&quot;form-control&quot; name=&quot;color&quot; placeholder=&quot;Choose a color&quot; value=&quot;{{ $events-&gt;color}}&quot;&gt;
  15. &lt;/div&gt;
  16. &lt;div class=&quot;form-group&quot;&gt;
  17. &lt;label for=&quot;&quot;&gt;Enter startdate of the Event&lt;/label&gt;
  18. &lt;input type=&quot;datetime-local&quot; class=&quot;form-control&quot; name=&quot;start_date&quot; class=&quot;date&quot; placeholder=&quot;Enter The start date&quot; value=&quot;{{ $events-&gt;start_date}}&quot;&gt;
  19. &lt;/div&gt;
  20. &lt;div class=&quot;form-group&quot;&gt;
  21. &lt;label for=&quot;&quot;&gt;Enter enddate of the Event&lt;/label&gt;
  22. &lt;input type=&quot;datetime-local&quot; class=&quot;form-control&quot; name=&quot;end_date&quot; class=&quot;date&quot; placeholder=&quot;Enter The end date&quot; value=&quot;{{ $events-&gt;end_date}}&quot;&gt;
  23. &lt;/div&gt;
  24. {{ method_field(&#39;PUT&#39;) }}
  25. &lt;input type=&quot;submit&quot; name=&quot;submit&quot; class=&quot;btn btn-primary&quot; value=&quot;add Event data&quot;/&gt;
  26. &lt;/div&gt;
  27. &lt;/div&gt;
  28. &lt;/form&gt;

答案1

得分: 2

问题出在你的 "edit" 路由没有参数,而 edit() 方法需要一个 $id 参数。尝试这样做:

  1. Route::get('/admin_editform/{id}', 'EventController@edit');
英文:

The issue is your "edit" route having no parameters and the edit() method expects a $id parameter. Try this:

  1. Route::get(&#39;/admin_editform/{id}&#39;, &#39;EventController@edit&#39;);

答案2

得分: 0

请尝试这个:

  1. Route::get('/admin_editform/{id}', 'EventController@edit');
英文:

Please try this

  1. Route::get(&#39;/admin_editform/{id}&#39;, &#39;EventController@edit&#39;);

huangapple
  • 本文由 发表于 2020年1月3日 22:26:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/59580257.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定