Как я могу сделать правильный маршрут с помощью кнопки в Laravel - PullRequest
1 голос
/ 14 октября 2019

У меня есть show.blade.php, и у меня есть кнопка «Поделиться», чтобы перейти на share.blade.php

Это мой show.blade.php

@extends('layouts.app')
@section('content')

<div class="container">
    <form method="post" action="/student/share-approval/{{$approval->uniid}}">
     @csrf
      <p> Hello  Trst show page , If you click share butoon should show the share page</p><br>
        <button type="submit" class="btn btn-primary"> share </button>
     </body>
    </form>
  </div>
@endsection

, и это моя доля.plade.php

@extends('layouts.app')
@section('content')

 <div class="container">
    <form method="post" action="/sendemail">
      @csrf
      <p> Share page</p>
     <button type="submit" class="btn btn-primary">send </button><br>
  </form>
</div>
@endsection

и это мой маршрут в сети

Route::post('/student/share','StudentController@shareapproval');
Route::get('/student/show-approval/{uniid}','StudentController@showapproval');
Route::get('/student/share-approval/{uniid}', 'StudentController@shareapproval');

, а это моя функция в StudentController

 public function showapproval($uniid)
{
  $approval = Student :: where ('uniid', $uniid)->firstOrFail();
   return view('ApprovalStudent.Request.show',compact('approval'));
}
   public function shareapproval($uniid)
   {
   $approval = Student :: where ('uniid', $uniid)->firstOrFail();
   return view('SendEmail.Request.share',compact('approval'));
   }

ошибка (Symfony \Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException Нет сообщения)

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Как метод - это сообщение в этой форме

<form method="post" action="/student/share-approval/{{$approval->uniid}}">

сделать ваш маршрут POST как

Route::post('/student/show-approval/{uniid}','StudentController@showapproval');

и поймать запрос в контроллере как

public function showapproval(Request $request,$uniid)
{

  $approval = Student :: where ('uniid', $uniid)->firstOrFail();
   return view('ApprovalStudent.Request.show',compact('approval'));
}

и в качестве привычки использовать url () в действии как,

<form action="{{url('/')}}/student/share-approval/{{$approval->uniid}}">
0 голосов
/ 14 октября 2019

Измените метод на post

  Route::post('/student/share','StudentController@shareapproval');
  Route::get('/student/show-approval/{uniid}','StudentController@showapproval');
  Route::post('/student/share-approval/{uniid}', 'StudentController@shareapproval');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...