Я пытаюсь создать веб-сайт, на котором вы можете загружать игры и видеть их на главной странице, но из-за того, что мне нужна двухэтапная форма, я не могу напрямую отправить их в базу данных.
мой контроллер:
public function createstep1(Request $request)
{
$naam = $request->session()->get('naam');
return view('games.game',compact('naam', $naam))->with('games', game::all());
}
public function postcreatestep1(Request $request)
{
$validatedData = $request->validate([
'naam' => 'required',
'geslacht' => 'required',
]);
if(empty($request->session()->get('naam'))){
return redirect('/game');
}else{
$naam = $request->session()->get('naam');
$naam->fill($validatedData);
$request->session()->put('naam', $naam);
}
return redirect('/newgame');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create(Request $request)
{
$naam = $request->session()->get('naam');
return view('games.newgame',compact('naam',$naam));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$game= new Game();
$game->game= $request['game'];
$game->naam= $request['naam'];
$game->geslacht= $request['geslacht'];
$game->save();
return redirect('/game');
}
<div id="newgame" style="height: 500px; width: 250px; float: left;">
<form method="post" name="naam">
@csrf
<input id="naam" name="naam" placeholder="naam">
<select name="geslacht" type="text">
<option name="man">man</option>
<option name="vrouw">vrouw</option>
</select>
<a type="submit"><button>volgende</button></a>
</form>
</div>
<div id="games" style="float: right">
@foreach($games as $game)
{{$game->game}} <br><br>
@endforeach
</div>
<h1>welkom {{$naam}}</h1>
<form method="post">
@csrf
<h3>game invoeren</h3>
<input type="text" id="gamenaam" name="gamenaam" placeholder="game">
<a id="submit" type="post" name="game" href="/newgame/store">
<button>verstuur</button></a>
</form>
Route::get('/', function () {
return view('welcome');
});
Route::get('/newgame', function () {
return view('games.newgame');
});
//Route::post('/newgames', ['as' => '/newgames', 'uses' => 'GameController@create']);
Route::get('/game', 'GameController@createstep1');
Route::post('/game', 'GameController@postcreatestep1');
Route::get('/newgame', 'GameController@create');
Route::post('/newgame/store', 'GameController@store');
Я ожидаю, что он уронит игру + имя и пол в базе данных, но фактический код выдаст сообщение об ошибке.Эта работа для школы, но они не могут помочь мне, если у вас есть предложения или могут помочь мне решить проблему, которая была бы великолепной.