假设我有一个模型Foo
并且我正在改变属性getter,如下所示:
class Foo extends Model
{
protected $table = 'foo';
public function getSomeBarAttribute($value)
{
return some_function($value);
}
}
有没有办法访问属性的原始值,预变异?
答案 0 :(得分:12)
您要查找的方法是getOriginal。要获得原始值,您可以使用:
$this->getOriginal('some_bar');
答案 1 :(得分:1)
在模型中定义了这个var:
Template.parentTemplate.helpers({
currentPath: function() {
return window.location.pathname;
}
});
它受到保护,因此您应该添加一个函数来获取原始值
(未经测试)
答案 2 :(得分:0)
priceRanges
方法仅将db属性返回为 Array 类型。因此,getAttributes和setAttributes等值不包括在内。
Array 返回的 [key => value] 对于新的Eloquent实例来说足够了。如果要使用计算旧属性的GetAttributes,则可以在使用具有原始值的getAttributes之前创建新的模型实例
private static LocalStockManager instance;
private string M_str_sqlcon;
private MySqlConnection mysqlcon;
public LocalStockManager()
{
M_str_sqlcon = "server=xxx.xx.xxx.x;user id=user;password=pass;database=db";
mysqlcon = new MySqlConnection(M_str_sqlcon);
}
public static LocalStockManager Instance
{
get
{
if (instance == null)
{
instance = new LocalStockManager();
}
return instance;
}
}
public int GetLocalAmountOf(string productTag)
{
MySqlCommand mysqlcom = new MySqlCommand("SELECT COUNT(ID) FROM...", mysqlcon);
bool bl = mysqlcon.Ping(); // returns false?
mysqlcon.Open();
MySqlDataReader mysqlread = mysqlcom.ExecuteReader(CommandBehavior.CloseConnection);
int counter = 0;
while (mysqlread.Read())
{
counter = mysqlread.GetInt32(0);
}
mysqlcon.Close();
return counter;
}