我对此数组有问题
$contenuLigne = array(
$article->getSousFamille()->getId(),
$article->getArticlePlateforme()->first()->getFournisseurCommun()->getNom(),
$article->getNom(),
'="'.$article->getArticleGencod()->first()->getGencod()->getCodeBarreComplet().'"',
$article->getId(),
$article->getArticlePlateforme()->first()->getReferenceFournisseur(),
$article->getArticlePlateforme()->first()->getCodeProduitGv(),
$article->getArticlePlateforme()->first()->getColisage(),
($article->getArticlePlateforme()->first()->getPrixActuels()->first()->getQuantiteMinimum()) ? $article->getArticlePlateforme()->first()->getPrixActuels()->first()->getQuantiteMinimum() : $article->getArticlePlateforme()->first()->getMinimumCommande(),
$article->getUniteAchatComplete(),
$article->getArticlePlateforme()->first()->getPrixActuels()->first()->getPrixNet(),
$article->getArticlePlateforme()->first()->getPrixActuels()->first()->getDateDebut()->format('d/m/Y'),
($article->getArticlePlateforme()->first()->getPrixFuturs()->count() > 0 ? $article->getArticlePlateforme()->first()->getPrixFuturs()->first()->getPrixNet() : ''),
($article->getArticlePlateforme()->first()->getPrixFuturs()->count() > 0 ? $article->getArticlePlateforme()->first()->getPrixFuturs()->first()->getDateDebut()->format('d/m/Y') : ''),
$article->getTauxTva()->getTaux(),
$article->getPrixVenteConseille(),
$article->getUniteVenteComplete(),
$article->getArticlePlateforme()->first()->getStock(),
);
有时线
会导致错误,如果他们找不到结果,我该如何制作这些行会返回一个空字符串:"
($article->getArticlePlateforme()->first()->getPrixActuels()->first()->getQuantiteMinimum()) ? $article->getArticlePlateforme()->first()->getPrixActuels()->first()->getQuantiteMinimum() : $article->getArticlePlateforme()->first()->getMinimumCommande(),
$article->getArticlePlateforme()->first()->getPrixActuels()->first()->getPrixNet(),
$article->getArticlePlateforme()->first()->getPrixActuels()->first()->getDateDebut()->format('d/m/Y'),
他们通常会将我返回这个错误
错误:致电非对象(500个内部服务器错误)上的成员函数getQuantIteminimin()
如果他们找不到结果,我该怎么办,并制作这些行会返回一个空字符串:"?
这3中的共同点是,在某些情况下,文章可能没有prixactuels。
最好的简单是创建一个值对象:)
这是一个很小的例子:
<?php
/**
* Represents an Article value.
*/
final class Article
{
/**
* @var Article
*/
private $article;
public function __construct(Article $article)
{
$this->article = $article;
}
public function getSousFamilleId()
{
$this->article->getSousFamille()->getId();
}
/**
* Suppose all getters are a DoctrineCommonCollectionsCollection
*/
public function getNameForCommonSupplier()
{
$articlePlateforme = $this->article->getArticlePlateforme();
if ($articlePlateforme instanceof Collection) {
$fournisseurCommun = $articlePlateforme->first()->getFournisseurCommun();
if ($fournisseurCommun) {
$fournisseurCommun->getNom();
}
}
return null;
}
/**
* Gets a native PHP array representation of the Article.
*
* @return array
*/
public function toArray()
{
return [
$this->getSousFamilleId(),
$this->getNameForCommonSupplier(),
];
}
}
$contenuLigne = new Article($article);
$contenuLigne->toArray();
现在,您都有一个专门用于获取和检查元素的对象。
我同意@jepster,您应该真正考虑修改您正在构建数组的方式。
如果您真的想挤压NULL检查该代码,则可以继续使用三元操作,只需检查该实体是否为null,即类似的东西:
$prixActuels = $article->getArticlePlateforme()->first()->getPrixActuels();
$contenuLigne = array(
...
$article->getUniteAchatComplete(),
$prixActuels ? $prixActuels->first()->getPrixNet() : " ",
...
);