php 相关问题

PHP(PHP:Hypertext Preprocessor)是一种广泛使用的,高级,动态,面向对象和解释的脚本语言,主要用于服务器端Web开发。

通过平面黑名单数组过滤平面数组

我创建了此代码来循环浏览当前目录中的文件夹并回显该文件夹的链接,一切正常。我将如何使用 $blacklist 数组作为数组来保存...

回答 2 投票 0

通过删除在黑名单数组中找到第一个出现的点之前的子字符串的元素来过滤平面数组

我有一个如下所示的数组: 大批 ( [0] => 副总裁 [1] => [2] => 其他 [3] => 财务主管 ) 我想删除该值中的其他值。 我尝试使用 array_filt...

回答 4 投票 0

无法在命令行加载动态库'oci8_19'

我尝试使用 php i 生成 sql 模式。

回答 0 投票 0

创建 Laravel 过滤器以返回按字段相似度从最匹配到最不匹配排序的记录

我想在 Laravel 中创建一个过滤器,它接受输入数据并返回按与过滤器的相似度排序的记录。记录应按照从最相似到最不相似的顺序排序,

回答 1 投票 0

如何在magento中编辑“design/frontend/base/default/template/customer/address/edit.phtml”?

<?php /** * Magento * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE_AFL.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade Magento to newer * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * * @category design * @package base_default * @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> <?php /** * Edit customer address template * * @see Mage_Customer_Block_Address_Edit */ ?> <?php if($this->getTitle()): ?> <div class="page-title"> <h1><?php echo $this->getTitle() ?></h1> </div> <?php endif; ?> <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> <form action="<?php echo $this->getSaveUrl() ?>" method="post" id="form-validate"> <div class="fieldset"> <?php echo $this->getBlockHtml('formkey')?> <input type="hidden" name="success_url" value="<?php echo $this->getSuccessUrl() ?>" /> <input type="hidden" name="error_url" value="<?php echo $this->getErrorUrl() ?>" /> <h2 class="legend"><?php echo $this->__('Contact Information') ?></h2> <ul class="form-list"> <li class="fields"> <?php echo $this->getNameBlockHtml() ?> </li> <li class="wide"> <label for="company"><?php echo $this->__('Company') ?></label> <div class="input-box"> <input type="text" name="company" id="company" title="<?php echo $this->__('Company') ?>" value="<?php echo $this->escapeHtml($this->getAddress()->getCompany()) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('company') ?>" /> </div> </li> <li class="fields"> <div class="field"> <label for="telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label> <div class="input-box"> <input type="text" name="telephone" value="<?php echo $this->escapeHtml($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('telephone') ?>" id="telephone" /> </div> </div> <div class="field"> <label for="fax"><?php echo $this->__('Fax') ?></label> <div class="input-box"> <input type="text" name="fax" id="fax" title="<?php echo $this->__('Fax') ?>" value="<?php echo $this->escapeHtml($this->getAddress()->getFax()) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('fax') ?>" /> </div> </div> </li> </ul> </div> <div class="fieldset"> <h2 class="legend"><?php echo $this->__('Address') ?></h2> <ul class="form-list"> <?php $_streetValidationClass = $this->helper('customer/address')->getAttributeValidationClass('street'); ?> <li class="wide"> <label for="street_1" class="required"><em>*</em><?php echo $this->__('Street Address') ?></label> <div class="input-box"> <input type="text" name="street[]" value="<?php echo $this->escapeHtml($this->getAddress()->getStreet(1)) ?>" title="<?php echo $this->__('Street Address') ?>" id="street_1" class="input-text <?php echo $_streetValidationClass ?>" /> </div> </li> <?php $_streetValidationClass = trim(str_replace('required-entry', '', $_streetValidationClass)); ?> <?php for ($_i = 2, $_n = $this->helper('customer/address')->getStreetLines(); $_i <= $_n; $_i++): ?> <li class="wide"> <div class="input-box"> <input type="text" name="street[]" value="<?php echo $this->escapeHtml($this->getAddress()->getStreet($_i)) ?>" title="<?php echo $this->__('Street Address %s', $_i) ?>" id="street_<?php echo $_i ?>" class="input-text <?php echo $_streetValidationClass ?>" /> </div> </li> <?php endfor; ?> <?php if ($this->helper('customer/address')->isVatAttributeVisible()) : ?> <li class="wide"> <label for="vat_id"><?php echo $this->__('VAT Number') ?></label> <div class="input-box"> <input type="text" name="vat_id" value="<?php echo $this->escapeHtml($this->getAddress()->getVatId()) ?>" title="<?php echo $this->__('VAT Number') ?>" id="vat_id" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('vat_id') ?>" /> </div> </li> <?php endif; ?> <li class="fields"> <div class="field"> <label for="city" class="required"><em>*</em><?php echo $this->__('City') ?></label> <div class="input-box"> <input type="text" name="city" value="<?php echo $this->escapeHtml($this->getAddress()->getCity()) ?>" title="<?php echo $this->__('City') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('city') ?>" id="city" /> </div> </div> <div class="field"> <label for="region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label> <div class="input-box"> <select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;"> <option value=""><?php echo $this->__('Please select region, state or province') ?></option> </select> <script type="text/javascript"> //<![CDATA[ $('region_id').setAttribute('defaultValue', "<?php echo $this->getAddress()->getRegionId() ?>"); //]]> </script> <input type="text" id="region" name="region" value="<?php echo $this->escapeHtml($this->getAddress()->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('region') ?>" /> </div> </div> </li> <li class="fields"> <div class="field"> <label for="zip" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label> <div class="input-box"> <input type="text" name="postcode" value="<?php echo $this->escapeHtml($this->getAddress()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international <?php echo $this->helper('customer/address')->getAttributeValidationClass('postcode') ?>" /> </div> </div> <div class="field"> <label for="country" class="required"><em>*</em><?php echo $this->__('Country') ?></label> <div class="input-box"> <?php echo $this->getCountryHtmlSelect() ?> </div> </div> </li> <li<?php if($this->canSetAsDefaultBilling()) echo ' class="control"' ?>> <?php if($this->isDefaultBilling()): ?> <strong><?php echo $this->__('Default Billing Address') ?></strong> <?php elseif($this->canSetAsDefaultBilling()): ?> <input type="checkbox" id="primary_billing" name="default_billing" value="1" title="<?php echo $this->__('Use as My Default Billing Address') ?>" class="checkbox" /><label for="primary_billing"><?php echo $this->__('Use as my default billing address') ?></label> <?php else: ?> <input type="hidden" name="default_billing" value="1" /> <?php endif; ?> </li> <li<?php if($this->canSetAsDefaultShipping()) echo ' class="control"' ?>> <?php if($this->isDefaultShipping()): ?> <strong><?php echo $this->__('Default Shipping Address') ?></strong> <?php elseif($this->canSetAsDefaultShipping()): ?> <input type="checkbox" id="primary_shipping" name="default_shipping" value="1" title="<?php echo $this->__('Use as My Default Shipping Address') ?>" class="checkbox" /><label for="primary_shipping"><?php echo $this->__('Use as my default shipping address') ?></label> <?php else: ?> <input type="hidden" name="default_shipping" value="1" /> <?php endif; ?> </li> </ul> </div> <div class="buttons-set"> <p class="required"><?php echo $this->__('* Required Fields') ?></p> <p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><small>&laquo; </small><?php echo $this->__('Back') ?></a></p> <button type="submit" title="<?php echo $this->__('Save Address') ?>" class="button"><span><span><?php echo $this->__('Save Address') ?></span></span></button> </div> </form> <script type="text/javascript"> //<![CDATA[ var dataForm = new VarienForm('form-validate', true); new RegionUpdater('country', 'region', 'region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'zip'); //]]> </script>`` 我想当我单击按钮时,它会创建带有“确定”按钮的弹出框,当我单击“确定”按钮时,magento 的默认过程将继续。 所有这些都是通过在本地代码池中使用不同的模型来实现的。 有可能吗?? 您可以使用类似的东西http://www.miniscript.it/demopages/confirmjquerydialog/demo.php并使用jquery管理此操作。 简单,只需在模板中添加隐藏块,将默认确认按钮更改为假按钮并启用操作即可: <button onclick="document.getElementById('hiddendivid').style.display = 'block'; return false;"> Fake button opens div with true button </button> <div id="hiddendivid" style="display: none;"> this is popup div <input type="submit" name="truemagentosubmit" value="This will real submit the form" /> <input type="submit" value="Or close thos window" onclick="document.getElementById('hiddendivid').style.display = 'none'; return false;" /> </div> 所有内容都将以与标准提交相同的形式工作。

回答 2 投票 0

PHP MODx mysql 解析错误?在哪里更改设置?

您好,我正在网站上使用 MODx,但数据库出现问题。知道如何更改 PHP 以指向我的数据库吗? « MODx 解析错误 » MODx 遇到以下错误...

回答 2 投票 0

如何向表单添加变量,以便将其添加到数据库(paypal 脚本)?

我想向 paypal 付款表单添加一个变量。然后我想将它添加到数据库中。该变量称为“membre_id”(用户 ID),可在 $_SESSION['membre_id'] 中找到。 哈...

回答 1 投票 0

Joomla 3.x:限制模块的大小

我是 Joomla 新手,对 html/css 缺乏经验。我有一个模块可以向我的网站添加菜单。菜单显示正确,但似乎我使用的位置专用更多...

回答 1 投票 0

如何替换或删除此空格列表(<br>'s)

我这里有一个情况,我想替换或删除这个etra空格(br标签)我正在准备一个txt文件并为每一行提供,但它有一些额外的空白空格,最终结果.. .

回答 2 投票 0

Zend Framework 2 分页器路由不起作用

我试图让分页器拆分页面上显示的组数,但由于某种原因,当我尝试转到下一组数据或页面时,它默认返回主布局和索引。 ..

回答 1 投票 0

QuickSight 发送预定电子邮件 SDK

借助 Amazon QuickSight UI,我们可以每周、每天或每月安排电子邮件。我们可以使用 SDK 在 QuickSight 上安排电子邮件吗?我已经搜索了文档,但我能够找到任何端点...

回答 2 投票 0

如何让 ¤ 按字面显示,而不是作为 HTML 实体

我正在使用 php 来查看其中包含 URL 的 XML 文件。 URL 看起来像这样: https://site.com/bacon_report?Id=1&report=1¤tDimension=2¶m=1 当我回声时...

回答 6 投票 0

Symfony 2 表单验证:验证消息中缺少属性名称

我不明白为什么某些约束在验证后不会在错误消息中插入属性名称。我有这个实体类: 我不明白为什么某些约束在验证后不会在错误消息中插入属性名称。我有这个实体类: <?php namespace AC\OperaBundle\Entity; use Doctrine\ORM\Mapping as ORM; use AC\UserBundle\Entity\Utente; use Symfony\Component\Validator\Constraints as Assert; /** * Class Episodio * @package AC\OperaBundle\Entity * @ORM\Entity(repositoryClass="AC\OperaBundle\Repository\EpisodioRepository") * * @ORM\Table( * name="ac_Episodio", * uniqueConstraints={@ORM\UniqueConstraint(name="unique_idx", columns={"opera", "numero_episodio", "extra"})}, * indexes={ @ORM\Index(name="opera_idx", columns={"opera"}), * @ORM\Index(name="numero_episodio_idx", columns={"numero_episodio"}), * @ORM\Index(name="extra_idx", columns={"extra"}), * @ORM\Index(name="attivo_idx", columns={"attivo"}) }) */ class Episodio { /** * @var int * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @var Opera * * @ORM\ManyToOne(targetEntity="AC\OperaBundle\Entity\Opera", inversedBy="episodi") * @ORM\JoinColumn(name="opera", referencedColumnName="id", nullable=false) */ protected $opera; /** * @var string * * @ORM\Column(name="numero_episodio", type="string", length=5, nullable=false) */ protected $numero_episodio; /** * @var string * * @ORM\Column(name="extra", type="string", length=30, nullable=false) */ protected $extra; /** * @var string * * @ORM\Column(name="titolo_italiano", type="string", length=150, nullable=false) * @Assert\NotBlank() */ protected $titolo_italiano; /** * @var string * * @ORM\Column(name="titolo_originale", type="string", length=150, nullable=false) * @Assert\NotBlank() */ protected $titolo_originale; /** * @var \DateTime * * @ORM\Column(name="data_ita", type="date", nullable=true) * @Assert\Date() */ protected $data_ita; /** * @var \DateTime * * @ORM\Column(name="data_jap", type="date", nullable=true) * @Assert\Date() */ protected $data_jap; /** * @var int * * @ORM\Column(name="durata", type="smallint", nullable=false, options={"default" = 0}) */ protected $durata; /** * @var string * * @ORM\Column(name="trama", type="text", nullable=false) */ protected $trama; /** * @var int * * @ORM\Column(name="ordine", type="smallint", nullable=false, options={"default" = 0}) */ protected $ordine; /** * @var int * * @ORM\Column(name="promosso", type="integer", nullable=false, options={"default" = 0}) */ protected $promosso; /** * @var int * * @ORM\Column(name="rimandato", type="integer", nullable=false, options={"default" = 0}) */ protected $rimandato; /** * @var int * * @ORM\Column(name="bocciato", type="integer", nullable=false, options={"default" = 0}) */ protected $bocciato; /** * @var boolean * * @ORM\Column(name="fansub", type="boolean", nullable=false) */ protected $fansub; /** * @var boolean * * @ORM\Column(name="attivo", type="boolean", nullable=false) */ protected $attivo; /** * @var \DateTime * * @ORM\Column(name="data_aggiornamento", type="date") */ protected $data_aggiornamento; /** * @var Utente * * @ORM\ManyToOne(targetEntity="AC\UserBundle\Entity\Utente") * @ORM\JoinColumn(name="utente_aggiornamento", referencedColumnName="id", nullable=true) */ protected $utente_aggiornamento; /** * @param boolean $attivo */ public function setAttivo($attivo) { $this->attivo = $attivo; } /** * @return boolean */ public function getAttivo() { return $this->attivo; } /** * @param int $bocciato */ public function setBocciato($bocciato) { $this->bocciato = $bocciato; } /** * @return int */ public function getBocciato() { return $this->bocciato; } /** * @param \DateTime $data_aggiornamento */ public function setDataAggiornamento($data_aggiornamento) { $this->data_aggiornamento = $data_aggiornamento; } /** * @return \DateTime */ public function getDataAggiornamento() { return $this->data_aggiornamento; } /** * @param \DateTime $data_ita */ public function setDataIta($data_ita) { $this->data_ita = $data_ita; } /** * @return \DateTime */ public function getDataIta() { return $this->data_ita; } /** * @param \DateTime $data_jap */ public function setDataJap($data_jap) { $this->data_jap = $data_jap; } /** * @return \DateTime */ public function getDataJap() { return $this->data_jap; } /** * @param int $durata */ public function setDurata($durata) { $this->durata = $durata; } /** * @return int */ public function getDurata() { return $this->durata; } /** * @param string $extra */ public function setExtra($extra) { $this->extra = $extra; } /** * @return string */ public function getExtra() { return $this->extra; } /** * @param boolean $fansub */ public function setFansub($fansub) { $this->fansub = $fansub; } /** * @return boolean */ public function getFansub() { return $this->fansub; } /** * @param int $id */ public function setId($id) { $this->id = $id; } /** * @return int */ public function getId() { return $this->id; } /** * @param string $numero_episodio */ public function setNumeroEpisodio($numero_episodio) { $this->numero_episodio = $numero_episodio; } /** * @return string */ public function getNumeroEpisodio() { return $this->numero_episodio; } /** * @param \AC\OperaBundle\Entity\Opera $opera */ public function setOpera($opera) { $this->opera = $opera; } /** * @return \AC\OperaBundle\Entity\Opera */ public function getOpera() { return $this->opera; } /** * @param int $ordine */ public function setOrdine($ordine) { $this->ordine = $ordine; } /** * @return int */ public function getOrdine() { return $this->ordine; } /** * @param int $promosso */ public function setPromosso($promosso) { $this->promosso = $promosso; } /** * @return int */ public function getPromosso() { return $this->promosso; } /** * @param int $rimandato */ public function setRimandato($rimandato) { $this->rimandato = $rimandato; } /** * @return int */ public function getRimandato() { return $this->rimandato; } /** * @param string $titolo_italiano */ public function setTitoloItaliano($titolo_italiano) { $this->titolo_italiano = $titolo_italiano; } /** * @return string */ public function getTitoloItaliano() { return $this->titolo_italiano; } /** * @param string $titolo_originale */ public function setTitoloOriginale($titolo_originale) { $this->titolo_originale = $titolo_originale; } /** * @return string */ public function getTitoloOriginale() { return $this->titolo_originale; } /** * @param string $trama */ public function setTrama($trama) { $this->trama = $trama; } /** * @return string */ public function getTrama() { return $this->trama; } /** * @param \AC\UserBundle\Entity\Utente $utente_aggiornamento */ public function setUtenteAggiornamento($utente_aggiornamento) { $this->utente_aggiornamento = $utente_aggiornamento; } /** * @return \AC\UserBundle\Entity\Utente */ public function getUtenteAggiornamento() { return $this->utente_aggiornamento; } } 在控制器中,在 $form->isValid() 方法中执行 classi 调用以检查验证。如果出现错误,我会致电 $form->getErrorsAsString(),结果如下: ERROR: This value should not be blank. ERROR: This value should not be blank. numeroEpisodio: No errors titoloItaliano: No errors titoloOriginale: No errors dataIta: ERROR: This value is not valid. dataJap: ERROR: This value is not valid. durata: No errors trama: No errors extra: No errors fansub: No errors 使用@Assert\NotBlank()的属性不要将属性名称放入错误消息中!因此,我有前两个错误行与 e generic: ERROR: This value should not be blank. ERROR: This value should not be blank. 我不知道验证失败的属性是谁。我查看了 Symfony 组件的源代码,发现非空白约束: /** * @author Bernhard Schussek <[email protected]> * * @api */ class NotBlankValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof NotBlank) { throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\NotBlank'); } if (false === $value || (empty($value) && '0' != $value)) { $this->context->addViolation($constraint->message); } } } 对于数据约束: /** * @author Bernhard Schussek <[email protected]> * * @api */ class DateValidator extends ConstraintValidator { const PATTERN = '/^(\d{4})-(\d{2})-(\d{2})$/'; /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if (!$constraint instanceof Date) { throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Date'); } if (null === $value || '' === $value || $value instanceof \DateTime) { return; } if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) { throw new UnexpectedTypeException($value, 'string'); } $value = (string) $value; if (!preg_match(static::PATTERN, $value, $matches) || !checkdate($matches[2], $matches[3], $matches[1])) { $this->context->addViolation($constraint->message, array('{{ value }}' => $value)); } } } 重要的区别是 $this->context->addViolation($constraint->message); VS $this->context->addViolation($constraint->message, array('{{ value }}' => $value)); 为什么? 这是控制器的核心部分 if ($request->getMethod() == 'POST') { try { $form->handleRequest($request); if ($form->isValid()) { /* @var $item Episodio */ $item = $form->getData(); $em->persist($item); $em->flush(); $msg = new Message(true, Message::OK_MESSAGE); } else { $msg = new Message(false, Message::KO_MESSAGE); $errors = Utility::getErrorMessages($form); $msg->setData($errors); } } catch (\Exception $ex) { $msg = new Message(false, $ex->getMessage()); } return new Response($this->get('jms_serializer')->serialize($msg, 'json')); } 这是从表单获取错误的实用程序类 class Utility { static function getErrorMessages(\Symfony\Component\Form\Form $form) { $errors = array(); foreach ($form->getErrors() as $key => $error) { $template = $error->getMessageTemplate(); $parameters = $error->getMessageParameters(); foreach($parameters as $var => $value){ $template = str_replace($var, $value, $template); } $errors[$key] = $template; } //if ($form->hasChildren()) { foreach ($form->all() as $child) { if (!$child->isValid()) { $errors[$child->getName()] = Utility::getErrorMessages($child); } } //} return $errors; } } 表格类 class EpisodioForm extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('numeroEpisodio', 'text'); $builder->add('titoloItaliano', 'text',array()); $builder->add('titoloOriginale', 'text'); $builder->add('dataIta', 'date', array('widget' => 'single_text', 'format' => 'dd/MM/yyyy')); $builder->add('dataJap', 'date', array('widget' => 'single_text', 'format' => 'dd/MM/yyyy')); $builder->add('durata', 'text'); $builder->add('trama', 'textarea'); $builder->add('extra', 'text'); $builder->add('fansub', 'checkbox'); } /** * Returns the name of this type. * * @return string The name of this type */ public function getName() { return "episodio_form"; } } 框架版本是Symfony 2.4 为什么$this->context->addViolation($constraint->message); VS $this->context->addViolation($constraint->message, array('{{ value }}' => $value));? 这是因为日期约束验证器在错误消息中显示了验证失败的值,例如 45.04.2014 is not a valid date. 而 NotBlank 约束验证器则不需要,因为导致错误的值始终为空。 将属性名称放入错误消息中 这可以实现: 将实体中约束的注释更改为: class Episodio { /** * @Assert\NotBlank(message="'titolo_italiano' should not be blank.") */ protected $titolo_italiano; /** * @Assert\NotBlank(message="'titolo_originale' should not be blank.") */ protected $titolo_originale; } 为了便于阅读,我省略了实体中的列定义和其他字段。 或者通过定义自定义验证器将属性名称传递给错误消息: 约束: class MyCustomNotBlank extends NotBlank { public $message = "'{{ propertyName }}' should not be blank."; } 验证者: use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; class MyCustomNotBlankValidator extends ConstraintValidator { public function validate($value, Constraint $constraint) { if (!$value) { $this->context->addViolation( $constraint->message, array('{{ propertyName}}' => $this->context->getPropertyPath()) ); } } } 这向您展示了如何定义自定义验证约束: http://symfony.com/doc/current/cookbook/validation/custom_constraint.html 获取带有属性名称和错误消息的键值数组 Afaik,Symfony2 的表单组件中没有函数可以做到这一点,所以必须实现它。 请参阅https://stackoverflow.com/a/13763053/277106。您可以将该函数添加到服务中以实现可重用性。在您的 (AJAX) 控制器中您可以执行以下操作: public function someAction(Request $request) { $errors = array(); $form = $this->createForm(new MyType); if (!$form->bindRequest($request)->isValid()) { $errors = $this->myFormService->getErrorMessages($form); } else { // save the entity } return JsonResponse($errors); }

回答 1 投票 0

Laravel v6 中的未知命名参数 $store 错误

我正在 Laravel 中处理子域,一位供应商来了并开了一家商店。创建商店时会分配一个子域,他/她可以通过该子域访问商店。 它在 local_ho 中工作正常...

回答 1 投票 0

如何在不使用插件和 woocommerce 的情况下将子类别添加到产品目录的自定义帖子类型

我陷入了问题。我创建了一个自定义帖子类型,即“产品”。在这篇自定义帖子中,我添加了一个分类类别名称作为“产品类别”。在产品类别中我添加了我的...

回答 1 投票 0

验证表单字段输入是否采用标题大小写格式

我正在尝试使用正则表达式为以下模式进行输入: 强制以大写字母开头第一个字符 强制其他单词(字母)的第一个字符大写 强制所有其他 l...

回答 2 投票 0

Laravel 中的 Quill:工具栏不响应点击事件

我在 Laravel 中使用鹅毛笔编辑器。工具栏有问题。当我单击工具栏的按钮时,它没有响应。这是我的代码: ...

回答 2 投票 0

Docker-Compose 使用 PHP 和 Nginx 不适用于生产环境

我在 docker-compose 中有一个非常简单的配置,其中包含 php:7-fpm 和 nginx,我想用它来托管简单的 php 网站。但我在将其投入生产时遇到了问题。 有人可以吗...

回答 2 投票 0

mysqli_ping 已弃用。我应该用什么来代替它?

我使用 mysqli_ping() 来检查 mysqli 连接是否已启动。在最新的 PHP 8.4 版本中,该函数已被弃用,并将在将来删除。为什么这个函数被弃用了,w...

回答 1 投票 0

处理多个页面的页面标题和 SEO 项目的最佳方法?

我的网站正在慢慢变大,我意识到我不想在最后继续返回并编辑元标签和标题等。 我的想法是在...的头部包含一个 php 页面。

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.