php - Laravel 从表单传递变量

标签 php forms laravel

我是 Laravel 的新手,正在学习 super 基础教程。 但是教程没有附带编辑记录部分,我正在尝试自己扩展。

路线:

Route::controller('admin/products', 'ProductsController');

Controller :

class ProductsController extends BaseController
{ 

public function getUpdate($id)
    {
        $product = Product::find($id);

        if ($product) {
            $product->title = Input::get('title');
            $product->save();
            return Redirect::to('admin/products/index')->with('message', 'Product Updated');
        }
        return Redirect::to('admin/products/index')->with('message', 'Invalid Product');
}

..ECT...

我意识到 Controller 正在请求使用一个 ID,但我不知道如何在发布/获取表单时将产品 ID 传递给它。

表格:

{{Form::open(array("url"=>"admin/products/update",'method' => 'get', 'files'=>true))}}
    <ul>
        <li>
            {{ Form::label('title', 'Title:') }}
            {{ Form::text('title') }}
            {{ Form::hidden('id', $product->id) }}

 ..ECT...

{{ Form::close() }}

我最初的想法是在表单 URL 中传递产品 ID,例如:

{{Form::open(array("url"=>"admin/products/update/{{product->id}}", 'files'=>true))}}

但也不走运。

我得到的错误是:

Missing argument 1 for ProductsController::postUpdate()

有趣的是,如果我直接在 URL 中输入:

http://localhost/laravel/public/admin/products/update/3

它工作正常,id 为 3 的项目已更改。

那么谁能帮助并告诉我如何使用表单传递 id?

非常感谢

最佳答案

这里的第一个问题如下:

{{Form::open(array("url"=>"admin/products/update/{{product->id}}", 'files'=>true))}}

{{product->id}} 在两个方面是错误的:

  1. 应该是{{$product->id}}
  2. 但它无论如何都行不通,因为 {{Form::...}} 内部的 {{..}} 不会被识别,因为它在字符串中,因此是字符串本身的一部分.

你要么必须这样写:

{{Form::open(array("url"=>"admin/products/update/".$product->id, 'files'=>true))}}

或者您在 routes.php 文件中为您的路线命名并按以下方式进行:

{{Form::open(array('route' => array('route.name', $product->id, 'files'=>true)))}}

我更喜欢第二种方式。

您可能还想查看 Form Model Bingin

关于php - Laravel 从表单传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28028996/

相关文章:

forms - 如果在 IE 9 上访问 Gmail 上的表单链接,文件上传不起作用

php - JavaScript 冲突?

php - 为什么在字符串中嵌入函数不同于变量

php - 无法加载自定义 PHP 模块

javascript - 摆脱联系人表单中的灰色字体和文本框边框

php - Laravel 试图删除最后添加的 MySQL 行

php - 使用 imagejpeg 保存和提供图像文件

java - jsp中的表单发布,contentType header没有字符集,为什么?

如果网络服务器没有安装加密层,Laravel 5.7 不会生成 HTTPS 路由

php - Laravel:通知中的 HTML