草庐IT

php - 如何使用 Laravel 5.1 将空字符串更改为 null?

在使用Laravel5.1时,我试图在使用EloquentORM将每个值保存到数据库之前检查每个值。我的逻辑是,首先修剪值,如果该值是空字符串"",然后将其转换为null而不是空字符串。有人建议我创建一个Trait,它将为此覆盖setAttribute方法。这就是我所做的我在名为TrimScalarValues.php的文件中有一个新文件夹“app\Traits”,其中包含以下代码emptyStringToNull(trim($value));}return$this->setAttribute($key,$value);}/***returnnullvalueifthestringi

php - 未找到 Laravel 自定义特征

我是traits的新手,但我想试试看。但是,它似乎没有加载。我在Laravel应用程序目录下的一个文件夹中创建了一个特征:app\Helpers名为CheckPermsAgainstObjectTrait.php这是特征代码:我尝试在Controller中使用它:该目录中的类加载正常。PHPStorm认为这个特征很好。我已经清除了已编译的aritsan并转储了自动加载。我猜Laravel不喜欢命名空间?我希望我不需要在composer中进行任何手动加载——但我找不到任何文档来提示我搞砸了什么。错误:FatalErrorExceptioninPolicyController.phplin

php - 我可以覆盖消费者类中的 PHP 特征属性以使用 Doctrine2 注释吗?

我正在使用特征在Symfony应用程序中实现一些可标记的行为,使用Doctrine2实现持久性,并使用注释来配置它。我的主要烦恼是,在特征中,我的IDE不知道$this->标签的类型,并抛出一堆警告。我对在此处记录我的代码非常强制症,这样其他开发人员就很容易上手。traitTaggableMethods{/**@var\Doctrine\Common\Collections\Collection*/protected$tags;//tags->add($tag);}publicfunctionremoveTag(Tag$tag){$this->tags->removeElement($

PHP:每当调用子类中的函数时调用函数

在单个类中,我可以使用_call/_callStatic函数在任何函数实际运行之前调用函数。但是,我还没有找到可以应用于父级的解决方案,并且它将由子级继承。我能想到的唯一方法是在每个调用父类中的函数的类中放置一小段代码,其中包含我的代码。有没有我可以实现的更好的解决方案? 最佳答案 只要您至少使用php5.4,就可以使用traits。http://php.net/traits这将需要对您的代码进行一些调整,但可以实现所需的行为。您是否有关于您的用例的更多信息?我想从你的描述中记录,这是正确的吗?

php - Doctrine2 从特征中复制属性和方法

我有一个实体,我想在其中使用特征“TimestampableEntity”来映射一些属性:namespaceWbudowie\PortalBundle\Entity;useDoctrine\ORM\MappingasORM;useGedmo\Mapping\AnnotationasGedmo;useWbudowie\PortalBundle\Traits\TimestampableEntity;/***Category**@Gedmo\Tree(type="materializedPath")*@Gedmo\SoftDeleteable(fieldName="deletedAt",ti

php - Laravel 模型上 Trait 中的范围查询

一点背景......我的应用程序中有两个“可定位”模型。我可以非常轻松地在存储库中编写查询以返回我需要的内容,但是,我相信在LaravelScopes和Traits等的帮助下可以做得更好(我可能是错的)。所以,我想出了以下解决方案:示例抽象模型abstractclassAbstractModelextendsModelimplementsSomeOtherStuff
{publicfunctionscopeNearby(Builder$query)
{return$query->selectRaw('(6373000*acos(cos(radians('.$this->location

php - 在类上使用特征,为什么?

类是怎么做的?ClassMain{$this->a=newA();$this->b=newB();$this->c=newC();$this->b->doTranslate($this->a->saySomething());}这就是traits的工作方式,不是吗?ClassMain{useA;useB;useC;$this->doTranslate($this->saySomething());}我对traits了解不多,但通过查看新的PHP5.4trait示例,它们似乎只在一个案例中有所帮助。一个类只能扩展一次以一起使用$this,但我们可以使用多个特征。问题1:这是使用trait

php - 多个特征同时使用相同的基本特征

好吧,假设存在以下问题:traitBase{publicfunctiondoSomething(){//Dofancystuffneededinothertraits}}traitA{useBase;publicfunctionfoo(){//Dosomething}}traitB{useBase;publicfunctionbar(){//Dosomethingelse}}现在我想实现一个同时使用特征A和B的类:classMyClass{useA,B;}PHP告诉我它不能重新定义函数doSomething()。PHP无法检测到A和B共享同一个特征并且不将其复制到MyClass中的原因

php - php 中的特征——任何真实世界的例子

在php中,traits具有一些特性,如接口(interface)和抽象类,traits也有助于继承。任何与Trait、Interface、Abstractclass和Interface相关的真实世界示例或讨论。 最佳答案 假设有2个类:Mailer和Writer。Mailer通过邮件发送一些文本,其中Writer将文本写入文件。现在假设您想要格式化两个类使用的输入文本。这两个类将使用相同的逻辑。您可以创建一个接口(interface),但您需要在两个类中复制逻辑。您可以创建一个父类并扩展它,但PHP不允许继承多个类。如果您的Mai

php - 特质; PHP 5.4 中的 parent 和 self 类型提示

虽然这个问题有点与语言无关(就支持Traits的OOP语言而言)我一直在修补PHP5.4a的夜间构建,并遇到了一个奇怪的场景。我似乎无法再运行我的安装,但那是另一回事了。给定以下代码段:traitMyTrait{publicfunctionmyMethod(self$object){var_dump($object);}}classMyClass{useMyTrait;}$myObject=newMyClass();$myObject->myMethod('foobar');//应该发生什么?我希望出现错误,指示$object需要是MyClass的实例。当trait方法被复制到一个us