jjzjj

Mutators

全部标签

php - 使用具有 belongsTo 关系的访问器修改器

使用Laravel4,我在我的用户模型中设置了一个修改器:publicfunctiongetFullnameAttribute($value){return$this->first_name.''.$this->last_name;}但是我在我的Cars模型中为链接到那辆车的用户ID设置了一个关系:publicfunctionsalesManager(){return$this->belongsTo('User','sales_manager')->select('first_name','last_name');}我在我的Car表上调用这种关系:$cars=Car::with('ma

php - Laravel 保护属性和 Mutators

我对laravel和protected$attributes和mutators有一些疑问。我有带积分的用户排名。我想向用户模型添加另一个具有排名位置的属性。在用户模型中我有这样的公共(public)函数:publicfunctiongetRankPositionAttribute(){$userPoints=Ranking::where('user_id','=',$this->id)->first();$userPosition=Ranking::where('points','>',$userPoints->points)->count()+1;return$userPositio

php - 可以从 php 中的数组动态定义类默认公共(public)变量吗?

我有一个事件类,用于将数据插入/更新到我的数据库中。有没有一种方法可以从我的db_fields数组创建公共(public)变量,这样我就不必复制数据了?这是我目前有效的结构...classevent{protectedstatic$table_name='tName';protectedstatic$db_fields=array('field1','field2','field3','field4','field5');public$field1;public$field2;public$field3;public$field4;public$field5;}我想要这样的东西..cl

php - 在 Laravel Eloquent 模型中创建动态命名的修改器

我有一个日期字段列表,所有这些字段在它们的修改器中都具有相同的逻辑。我想将此功能提取到特征中,以便将来我只需要在模型中创建一个日期字段数组并使用该特征。像这样:foreach($datesas$date){$dateCamelCase=$this->dashesToUpperCase($date);$setDateFunctionName='set'.$dateCamelCase.'Attribute';$this->{$setDateFunctionName}=function()use($date){$this->attributes[$date]=date('Y-m-d',str

父返回子中的 C++ 函数

我想让我的类中的修改器(setter)返回this以允许类似jQuery的a.name("something").address("somethingelse");我有一个父类(Entity)和几个子类(Client、Agentetc.)。大多数事物的修改器都继承自Entity类(如名称或地址),但它们返回一个Entity对象,因此我无法对它们调用Client修改器。换句话说://namemutatorEntity&Entity::name(conststring&name){//[...]checks_name=name;return*this;}//budgetRangemutat

PHP 类定义 : Individual accessors/mutators or __set() with switch()?

在定义PHP类时,哪个是首选/最佳实践?是否有任何我忽略的关键差异?编写一个__set()魔术方法并在其中放置一个switch()结构和用于我想允许访问的所有私有(private)成员。它不会从类内部自动调用,但是setFoo()也不会,所以如果我想在内部使用访问器/修改器,我必须显式调用一个方法方式。另一个区别是,在类外部的代码中,我总是可以以与$obj->foo相同的方式访问成员变量,无论是公共(public)(直接)还是私有(private)(使用__set()),而不是使用许多单独的方法。我想这主要归结为审美选择。例如,如果我有购买的地址数据,我不希望有16个或更多单独的访问器

php - Laravel 5 修改器仅在我创建记录而不是更新记录时起作用

您好,我创建了一个只存储电话号码数字的修改器。这是我的配置文件模型中的代码。publicfunctionsetPhoneAttribute($phone){$this->attributes['phone']=preg_replace("/[^0-9]/","",$phone);}这在我创建新记录时有效,但如果我更新记录,它就不起作用。我的问题是如何在创建和更新时执行Mutator?这是我在Controller中更新和创建的方式:namespaceApp\Http\Controllers;useApp\Http\Requests;useApp\Http\Requests\Profile

php - 突变器不适用于批量插入

我正在尝试使用Order::insert($orderArray);在laravel中插入多条记录我做了一个修改器,它是publicfunctionsetOrderDetailAttribute($value){if($value){$this->attributes['order_detail']=serialize($value);}}突变器不工作。但是当我使用Order::create($orderArray[0][0]);插入单个记录时,mutator工作正常。我的问题是如何将mutator与插入功能或批量插入结合使用。 最佳答案

multithreading - 在后台线程中自变异 Swift 结构

假设我们有一个能够self突变的结构,它必须作为后台操作的一部分发生:structThing{varsomething=0mutatingfuncoperation(block:()->Void){//Startsomebackgroundoperationdispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0)){//Mutateselfuponbackgroundtaskcompletionself.something+=1block()}}}现在,当我在上下文中使用这样的结构时:v