這是我第一次嘗試將產品信息存儲到mysql中。我提前道歉,如果代碼不是最好的形式,我仍然在學習。這是我的registration.html.twigSymfony3試圖用形式和樹枝保存到db
{% extends 'base.html.twig' %}
{% block stylesheets %}
<link href="{{ asset('bundles/framework/css/myStyle.css') }}" rel="stylesheet" />
{% endblock %}
{% block title %}Create your product {% endblock %}
{% block body %}
<div id="container">
<h1 id="header">Create your product and store it in the database!</h1>
</div>
<form method="POST" id="registrationForm">
<input type="text" id="pName" placeholder="Product name">
<input type="text" id="pPrice" placeholder="Product price"> <br>
<textarea id="pDescription" placeholder="Product description"></textarea>
</form>
<input type="submit" value="Submit" >
{% endblock %}
我也有setter方法&干將產品實體類,這裏將不會包括由於代碼量的它。
這是我ProductForm:
class ProductForm extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('pName')
->add('pPrice')
->add('pDescription')
;
}
}
,這裏是我的控制器的一部分的/插入頁:
public function createAction()
{
$product = 'AppBundle\Entity\Product';
$form = $this->createForm(ProductForm::class, $product);
if($form->isValid())
{
$em= $this->getDoctrine()->getManager();
//Save into database code should go here...
}
}
對於初學者來說,它抱怨Expected argument of type "object, array or empty", "string" given
我猜測來自控制器,我試圖將具有指定路徑的變量$product
傳遞給實體類。在文檔中這部分非常混亂。它說$product = ...
讓我沒有任何東西,我設法瞭解,這是一個實體類的路徑,它應該傳遞給createForm
方法,但正如之前提到的,它抱怨它是string
而不是array
。有人可能會檢查我的代碼並對錯誤進行反饋嗎?我現在真的迷失了,不知道下一步該做什麼或如何解決這個問題。先謝謝你。
謝謝你的回答,你是什麼意思'name'屬性?我試圖弄清楚,但我不能。我還將'$ product'變量更改爲您指定的變量,但我仍然得到相同的錯誤,表示它期待數組或對象並收到字符串。 –
'' - 此元素中的屬性是:'type','id'和'placeholder'。一個表單域,比如類型爲「text」的'input',需要一個'name'屬性,在這個屬性下,這個值將通過'POST'請求發送到服務器。例如,這個字段的值:''稍後可以在'$ request'對象中訪問,如下所示:'$ request-> request-> get('theFieldName' )',並且將出現在$ _POST ['theFieldName']'中。 –