我有一個型號命名順序:訪問器是不是叫
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;
class Order extends Model
{
public function getsystemIdAttribute()
{
return 99;
}
public function setCreatedAtAttribute($value){
$this->attributes['createdAt'] = Carbon::parse($value)->format('Y-m-d');
}
protected $fillable = ['customerId', 'itemId','systemId', 'createdAt'];
public $timestamps = false;
}
的問題是,存取 - getsystemIdAttribute()的驚喜是沒有得到所謂的,我試圖在其他領域,但是訪問ISN再次調用。當然,我已將名稱形式getsystemIdAttribute更改爲getitemIdAttribute(例如)。我在另一個模型上覆制了該方法,並再次將該名稱更改了一下,並且它工作正常。我啓動了我的調試器,並訪問了使用這個模型的視圖,令我驚訝的是這個方法沒有被調用,但是返回了數據庫中的字段。 Laravel的版本是5.3,數據庫是MySQL,php的版本是7. 任何想法是我的問題。
編輯: 這裏是駱駝情況下,代碼:
public function getItemIdAttribute($value)
{
return 99;
}
public function getSystemIdAttribute($value)
{
return 99;
}
但同樣它不能正常工作,它返回從database.Here的數據是從數據庫retriving的數據的方法:
public function read_many($count, $page, $table){
$tbl = Models::determine_table($table);
return $tbl::skip(intval($count)*(intval($page)-1))->take(intval($count))->get()->toArray();
}
這裏是determine_table方法:
public static $tables = [ 'systems' => 'App\System',
'orders' => 'App\Order',
'notifiers' => 'App\Notifier',
'billings' => 'App\Billing',
'items' => 'App\Item',
'customers' => 'App\Customer',
'users' => 'App\User'
];
public static function determine_table($table_input){
foreach(self::$tables as $table=>$class){
if($table_input == $table){
return $class;
}
}
die();
}
不幸的是,更改名稱不起作用。我會更新問題,併發布代碼。 –
試過了,沒有工作。數據也是數據庫中的數據。 –
你如何檢索數據? – manniL