gpt4 book ai didi

php - Laravel 发布表单数据

转载 作者:可可西里 更新时间:2023-10-31 22:53:42 26 4
gpt4 key购买 nike

我无法从我的 laravel 应用程序中的表单获取数据,并在同一 Controller 中使用另一种方法显示它。

这是我的表单 Controller

class ForumController extends Controller {
+
+ private $name,
+ $description;
+
+ public function __construct() {
+ $this->middleware('auth');
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ *
+ * @return Response
+ */
+ public function create()
+ {
+ return view('forum.create');
+
+ $this->name = Input::post('name');
+ }
+
+ /**
+ * Show the details of their input once its created
+ */
+ public function created()
+ {
+ var_dump($this->name);
+ }
+}

这是我的 Routes.php

Route::get('/group/create', 'ForumController@create');
+Route::post('/group/create', 'ForumController@created');

这是我的论坛创建 View 。

@extends('app')
+
+@section('content')
+
+ <div class="container">
+ <h1>Create a Forum</h1>
+ <hr>
+
+ <div class="panel panel-default">
+ <div class="panel-heading">Create your own forum here!</div>
+
+ <div class="panel-body">
+ @if (count($errors) > 0)
+ <div class="alert alert-danger">
+ <strong>Whoops!</strong>There were some problems with your input.<br><br>
+ <ul>
+ @foreach ($errors->all() as $error)
+ <li>{{ $error }}</li>
+ @endforeach
+ </ul>
+ @endif
+ <form class="form-horizontal" method="POST" action="{{ url('/group/create') }}">
+
+ <input type="hidden" name="_token" value="{{ csrf_token() }}">
+
+ <div class="form-group">
+ <label class="col-md-4 control-label">Name</label>
+ <div class="col-md-6">
+ <input type="text" class="form-control" name="name" min="1" max="20">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-md-4 control-label">Description</label>
+ <div class="col-md-6">
+ <input type="text" class="form-control" name="description" min="1" max="255">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <div class="col-md-6 col-md-offset-4">
+ <button type="submit" class="btn btn-primary">
+ Create
+ </button>
+ </div>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+@stop

有人能给我指出正确的方向吗?

最佳答案

好吧,您的示例的失败点是当您加载 created 路由时,PHP 不会保留 $this->name。事实上,正如评论者所说,$this->name 永远不会被设置,因为您在它的定义之前有一个 return 语句。

在创建方法中设置 $this->name 之后。当您导航到创建的路由时,不再设置 $this->name,即使您要在设置 name 之后移动 return 语句也是如此。

您需要将数据保存在数据库/ session /缓存中或从创建方法重定向到传递数据的创建方法。

public function create() 
{
// Handle POST Here
if (Input::has('name')) {
$this->name = Input::get('name');

// $this->name is redundant but even still...
return Redirect::to('created', array('name' => $this->name));
}

return view('forum.create');
}

关于php - Laravel 发布表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29945414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com