php - 访问器在 Laravel 5.5 中不起作用

标签 php laravel laravel-5.5 accessor

我有一个模型,里面有一个访问器

class Test extends Model
{
    protected $fillable = [
        'subject','date',
   ];


    public function getSubjectAttribute($value)
    {
        return ucfirst($value);
    }
}

当我调用模型时,访问器不起作用 我阅读了所有文件和问答,但是...... 我的 Laravel 版本为 5.5

在模型中我有一个获取数据的方法

public function get_specific_subject($id){
    $subject = DB::table("subjects")
        ->where("id", "=", $id)
        ->first();

    return $subject;
}

我通过下面的代码在我的 Controller 中调用这个方法

    $subject = new Test();
    $subject = $subject->get_specific_subject($subject_id);
    dd($subject);

dd 结果是:

    +"id": 5
    +"subject": "testing subject"
    +"date": "2018-01-17"
    +"created_at": "2018-01-13 15:08:41"
    +"updated_at": "2018-01-13 15:08:41"

最佳答案

您正在使用数据库来获取您的记录,而是在 Controller 中执行此操作:

  $subject= Test::find($subjectId);
  dd($subject);

并在您的模型中添加以下行:

  protected $table = 'subjects';
  public $primaryKey='id';

关于php - 访问器在 Laravel 5.5 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48299785/

相关文章:

php - 连接 4 个具有相同 id laravel 的表

laravel - 在 CLI 上使用 Composer 安装时出现 fatal error "Class...not found"

laravel - 如何在 Laravel 5.5 中为选定的 Request 类设置自定义响应

php - 通过 php 重定向对 apache 的调用

php - Javascript "window.location"停止 PHP 重定向

php - 如何在 Laravel 中通过翻译从多对多关系中仅获取事件元素

php - 在 php/mysql 中导入 SCORM 包

laravel - 在 null 上调用成员函数 getRealPath()

Laravel 5.5 + Vue.js 2.x 项目无法在 npm run dev 上运行

php - 如何更改laravel日志格式?