Php 不调用访问器

Php 不调用访问器,php,mysql,eloquent,laravel-5.3,Php,Mysql,Eloquent,Laravel 5.3,我有一个名为Order的模型: <?php namespace App; use Illuminate\Database\Eloquent\Model; use Carbon\Carbon; class Order extends Model { public function getsystemIdAttribute() { return 99; } public function setCreatedAtAttribute($valu

我有一个名为Order的模型:

<?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;
}
但它同样不起作用,它从数据库返回数据。下面是从数据库中检索数据的方法:

 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();
    }
以下是确定表方法:

 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();
    }

您需要在studly case中编写该方法(如上所述)

因此,它将是
getSystemIdAttribute()
getItemIdAttribute()

现在执行
dd(Order::find(1)->system\u id)如果数据库中有Order对象,它应该返回99


编辑:当使用
toArray()
时,将不会执行变异器!查看一个很好的解释,为什么它是这样的。

您需要在studly case中编写该方法(如上所述)

因此,它将是
getSystemIdAttribute()
getItemIdAttribute()

现在执行
dd(Order::find(1)->system\u id)如果数据库中有Order对象,它应该返回99


编辑:当使用
toArray()
时,将不会执行变异器!请查看一个很好的解释,为什么要这样做。

不幸的是,更改名称不起作用。我将更新问题,并发布代码。尝试过,没有效果。数据也是数据库中的数据。如何检索数据?dd返回的是预期值。在一秒钟内,我将在问题中发布控制器方法更新我的答案。toArray()函数是这里的“问题”。不幸的是,更改名称不起作用。我将更新问题,并发布代码。尝试过,没有效果。数据也是数据库中的数据。如何检索数据?dd返回的是预期值。在一秒钟内,我将在问题中发布控制器方法更新我的答案。toArray()函数是这里的“问题”。
 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();
    }