Система голосования Laravel получает номер проекта, который выбирает пользователь

Я делаю систему голосования с Laravel Framework, но теперь я столкнулся с некоторой проблемой. Я хочу передать номер проекта, выбранный пользователями, в другое представление (все под одним контроллером). В другом проекте я использовал Input :: get (), но теперь что-то не работает. я получил MethodNotAllowedHttpException в строке 218 RouteCollection.php:
Вот моя часть просмотра projecs_list,

`

 @foreach($project as $key => $value) `
<form class="form-horizontal" role="form" method="POST" action="{{ url('/vote'}}" >
<div class="row banner">

<div class="col-md-8 col-md-offset-2 ">

<div class="project_nr_5" name="5" >
<h3 class="text-primary text-center">
{{ $value->tytuł}}
</h3>
<p class="lead">
{{ $value->opis}}
</p>
<p class="lead">
{{ $value->lokalizacja }}
</p>
<p name="project_id" id="project_id">  Projekt numer: {{ $value->id}} </p>
<button type="submit"   value=" {{ $value->id }} " class="btn btn-primary center-block" >
ZAGŁOSUJ
</button>
</a>
</div>
</div>

</div>
</form>
@endforeach

отсюда я хотел бы передать значение project_id.

Вот маршруты

`

Route::get('/projekty','MakeVoteController@show_projects');
Route::get('/vote','MakeVoteController@index');
Route::post('/store','MakeVoteController@store');
`
`

Вот контроллер

`

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Voter;
use App\Vote;
use App\SingleProject;
use Illuminate\Support\Facades\Input;
class MakeVoteController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
//$project_id = Input::get('project_id');

//number of the projet the user choosed
$selected_project = Input::get('project_id');
return view('vote')
->with('selected_project', $selected_project);

}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}

/**
* Store a newly created resource in storage.
*
* @param  \Illuminate\Http\Request  $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
// Save data to table Voters, get values from submit of vote form

// $data= Input::all();$this->validate($request, [
'pesel' =>'required|unique|max:11|min:11',
'name' =>'required|max:64|min:2',
'surname' => 'required|max:128|min:2'
]);

$newvoter = new Voter;
$newvoter->name = Input::get("name");
$newvoter->surname = Input::get("surname");
$newvoter->pesel = Input::get("pesel");
$newvoter->save();

$givevote = new Vote;
return "Successfull adding to database";}

/**
* Display the specified resource.
*
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}

/**
* Show the form for editing the specified resource.
*
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{

}

/**
* Update the specified resource in storage.
*
* @param  \Illuminate\Http\Request  $request
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}

/**
* Remove the specified resource from storage.
*
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}

public function show_projects()
{
$projects = SingleProject::all();

return view('projects_list')
->with('project', $projects);
$proj_select_id = Input::get("project_id");
index($proj_select_id);
}}

`

и наконец вот представление голосования, где пользователь заполняет форму и голосует за выбранный проект.

`

<div class="panel panel-default">
<div class="panel-heading"> Zagłosuj na projekt nr {{ $selected_project }}</div>
<div class="panel-body">
<form class="form-horizontal" role="form" method="POST" action="{{ url('/store') }}">

{{ csrf_field() }}

<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
<label for="name" class="col-md-4 control-label">Imie</label>
<div class="col-md6">
<input id="name" maxlength="255" type="text" class="form-control" name="name" required autofocus>
@if ($errors->has('name'))
<span class='help-block'>
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
</div>
</div>

<div class="form-group{{ $errors->has('surname') ? ' has-error' : '' }}">
<label for="surname"class="col-md-4 control-label">Nazwisko</label>
<div class="col-md6">
<input id="surname" type="text" class="form-control" name="surname" required>

@if ($errors->has('surname'))
<span class="help-block">
<strong>{{ $errors->first('surname') }} </strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('pesel') ? ' has-error' : '' }}">
<label for="pesel"class="col-md-4 control-label">pesel</label>
<div class="col-md6">
<input id="pesel" type="text" class="form-control" name="pesel" required maxlength="11" minlength="11">

@if ($errors->has('pesel'))
<span class="help-block">
<strong>{{ $errors->first('pesel') }} </strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('street') ? ' has-error' : '' }}">
<label for="street"class="col-md-4 control-label">Ulica</label>
<div class="col-md6">
<input id="street" type="text" class="form-control" name="street" required >

@if ($errors->has('pesel'))
<span class="help-block">
<strong>{{ $errors->first('pesel') }} </strong>
</span>
@endif
</div>
</div>

<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Zagłosuj
</button>
</div>
</div>
</div>

</form>
</div>

2

Решение

В вашем project_list вид вы определяете форму аттрибут method="POST" action="{{ url('/vote'}}"

Но в вашем маршруте вы определяете /vote с http GET метод: Route::get('/vote','MakeVoteController@index');

Они должны быть в том же методе http.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]