我遇到了一个问题,我不知道如何解决它。我正试着做一个表格,以便在数据库中插入数据。表单被ubicated的视图由Laravel的默认控制器函数create
返回:
public function create()
{
return view("edicion-fosil");
}
edicion-fosil视图的形式是这样的:
@extends ('layouts.main-layout')
@section ('page-title', 'Fosilesleon')
@section ('content-area')
<form action="fosil.store" method="get">
<div id="inputs_generales_fosil">
<div id="input_imagen_fosil">
<img src="" alt="" id="imagen_fosil_edicion">
<input type="file" id="imagen_fosil_input" name="imagen_fosil_input">
</div>
</div>
<div id="input_mapa">
</div>
<input type="submit" name="guardar_fosil" value="Guardar"/>
</form>
@endsection
问题来了,当我点击提交按钮。而不是返回lista-fosiles
视图,控制器存储函数应该返回的是另一个视图。
控制器存储功能如下:
public function store(Request $request)
{
return view("lista-fosiles");
}
它应该返回的视图是这样的:
@extends ('layouts.main-layout')
@section ('page-title', 'Fosilesleon')
@section ('content-area')
<?php
//obtengo las distintas piedras, especies y edades
$piedras = app('App\Http\Controllers\PiedraController')->getPiedras();
$edades = app('App\Http\Controllers\EdadController')->getEdades();
//$especies = app('App\Http\Controllers\EspecieController')->getEspecies();
$nombres = app('App\Http\Controllers\EspecieController')->getNombres();
$clases = app('App\Http\Controllers\EspecieController')->getClases();
$filos = app('App\Http\Controllers\EspecieController')->getFilos();
//dd($filos);
?>
<div id="lista-fosiles-main">
<form id="filtros-fosiles" action="#" method="fosiles/index">
<div id="piedra">
<label for="select-piedras">Piedra</label>
<select id="select-piedras" name="select-piedras" onchange="this.form.submit()">
<option value="">Todas</option>
<?php
foreach($piedras as $piedra){
echo "<option value='".$piedra->id."'>".$piedra->nombre."</option>";
}
?>
</select>
</div>
<div id="edad">
<label for="select-edad">Edad</label>
<select id="select-edad" name="select-especies" onchange="this.form.submit()">
<option value="">Todas</option>
<?php
foreach($edades as $edad){
echo "<option value='".$edad->id."'>".$edad->periodo."</option>";
}
?>
</select>
</div>
<div id="nombre">
<label for="select-nombre">Especie</label>
<select id="select-nombre" name="select-nombre" onchange="this.form.submit()">
<option value="">Todas</option>
<?php
foreach($nombres as $nombre){
echo "<option value='".$nombre->nombre."'>".$nombre->nombre."</option>";
}
?>
</select>
</div>
<div id="clase">
<label for="select-clase">Clase</label>
<select id="select-clase" name="select-clase" onchange="this.form.submit()">
<option value="">Todas</option>
<?php
foreach($clases as $clase){
echo "<option value='".$clase->clase."'>".$clase->clase."</option>";
}
?>
</select>
</div>
<div id="filo">
<label for="select-filo">Filo</label>
<select id="select-filo" name="select-filo" onchange="this.form.submit()">
<option value="">Todos</option>
<?php
foreach($filos as $filo){
echo "<option value='".$filo->filo."'>".$filo->filo."</option>";
}
?>
</select>
</div>
<div id="verificado">
<label for="check-verificado">Verificado</label>
<input type="checkbox" id="check-verificado" name="check-verificado" onchange="this.form.submit()"/>
</div>
</form>
<div class="fosiles-container">
<?php
$idEdad = "";
$clase = "";
$filo = "";
$idUsuario = "";
$idPiedra = "";
$verificado = "";
//$idEspecie = $_REQUEST["especie"];
if(isset($_REQUEST["select-piedras"])){
$idPiedra = $_REQUEST["select-piedras"];
}
if(isset($_REQUEST["select-edad"])){
$idEdad = $_REQUEST["select-edad"];
}
if(isset($_REQUEST["check-verificado"])){
$verificado = $_REQUEST["check-verificado"];
}
$fosiles = app('App\Http\Controllers\FosilController')->getFosiles($idEdad, $idPiedra, $filo, $clase, $verificado, $idUsuario);
foreach ($fosiles as $fosil){
$user = app('App\Http\Controllers\UserController')->getUserById($fosil->id_user);
$especie = app('App\Http\Controllers\EspecieController')->getEspecieById($fosil->id_especie);
echo ""?>
<x-fosil :fosil=$fosil :especie=$especie :user=$user></x-fosil>
<?php
;
}
?>
</div>
</div>
@endsection
返回的视图是:
@extends ('layouts.main-layout')
@section ('page-title', 'Fosilesleon')
@section ('content-area')
<?php
//print_r($_FILES);
//inicializo el fósil obteniéndolo a partir de la id que me devuelve el método show de FosilController
$fosil = app('App\Http\Controllers\FosilController')->getFosilById($fosil_id);
//a partir de los datos del fósil, obtengo el usuario propietario, la piedra, la edad y la especie
if($fosil != null){
$user = app('App\Http\Controllers\UserController')->getUserById($fosil->id_user);
$especie = app('App\Http\Controllers\EspecieController')->getEspecieById($fosil->id_especie);
$piedra = app('App\Http\Controllers\PiedraController')->getPiedraById($fosil->id_piedra);
$edad = app('App\Http\Controllers\EdadController')->getEdadById($piedra->id_edad);
//esta variable guardará true si el usuario ha votado el fósil y false si no
$votado = app('App\Http\Controllers\UsuariosvotoController')->votado(Auth::id(), $fosil_id);
?>
<div id="ficha-fosil">
<div id="datos-generales-fosil-main">
<img src="{{$fosil->url_imagen}}" id="ficha-fosil-imagen" class="ficha-fosil-imagen" alt="imagen del fósil" onerror="this.onerror=null; this.src='{{ URL::to('/') }}/images/default.png'">
<div id="datos-generales-fosil">
<div id="datos-generales">
<h2>{{$fosil->nombre}}</h2>
<h4>Ubicación:</h4>
<p>{{$fosil->direccion}}</p>
<h4>Publicado por:</h4>
<a href="" id="a-publicado-por" class="a-publicado-por">{{$user->name}}</a>
<?php
/*
if($fosil->verificado == 1){
echo "<p>Verificado <img src='/icons/check.png' height='16px' alt='verificado'/></p>";
}*/
?>
</div>
<div id="votos">
<p><span class="bold big-font">{{$fosil->votos}}</span> usuarioshan verificado este fósil</p>
<div>
</div>
</div>
</div>
</div>
<div id="datos-especificos-fosil">
<div id="datos-especie">
<h1>FÓSIL</h1>
<h3>{{$especie->nombre}}</h3>
<h5>Clase:</h5>
<p>{{$especie->clase}}</p>
<h5>Filo:</h5>
<p>{{$especie->filo}}</p>
<p>{{$especie->descripcion}}</p>
</div>
<div id="datos-piedra">
<h1>PIEDRA</h1>
<img id="imagen-piedra-ficha-fosil" src="{{$piedra->url_imagen}}" alt="{{$piedra->nombre}}">
<h3>{{$piedra->nombre}}</h3>
<h5>Procedencia</h5>
<p>{{$piedra->procedencia}}</p>
<h5>Edad</h5>
<p>{{$edad->periodo}}</p>
<p><em>({{$edad->anio_inicio}} - {{$edad->anio_fin}})</em></p>
</div>
</div>
</div>
<?php
}
else{
echo "<p>Something went wrong</p>";
}
?>
@endsection
对不起的代码量,只是把它的情况下,它是必要的。另外,如果这是一个明显的错误,或者如果有代码可以用另一种更好的方式编写,我很抱歉,我正在开始使用Laravel。谢谢你的建议:)
1条答案
按热度按时间mpgws1up1#
有两个问题:
fosiles.store
,而不是fosil.store
action
值为{{route("fosiles.store")}}
(route()缺失)回复@N69S