我有一个模型,里面有一个访问者
class Test extends Model
{
protected $fillable = [
'subject','date',
];
public function getSubjectAttribute($value)
{
return ucfirst($value);
}
}
当我呼叫模型时,访问器不起作用 我阅读了所有文件和Q& A,但...... 我在5.5的Laravel版本
在模型中,我有一个获取数据的方法
public function get_specific_subject($id){
$subject = DB::table("subjects")
->where("id", "=", $id)
->first();
return $subject;
}
我在控制器中用下面的代码调用这个方法
$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"
答案 0 :(得分:2)
您正在使用数据库来获取记录,而是在您的控制器中执行此操作:
$subject= Test::find($subjectId);
dd($subject);
并在您的模型中添加以下行:
protected $table = 'subjects';
public $primaryKey='id';
答案 1 :(得分:1)
class Test extends Model
{
protected $table = 'subjects';
protected $fillable = [
'subject','date',
];
public function getSubjectAttribute($value)
{
return ucfirst($value);
}
}
在控制器中
public function view($subjectId){
$subject = Test::find($subjectId);
dd($subject->toArray());
}
答案 2 :(得分:0)
改为使用$subject->subject
。
答案 3 :(得分:0)
像这样更改你的代码(使用你的模型):
public function get_specific_subject($id){
$subject = Subject::where("id", "=", $id)
->first();
return $subject;
}