【发布时间】:2019-11-21 10:21:57
【问题描述】:
我是 laravel/php 的新手,希望有人能够为我回答问题。当我在这里使用asset->setDescription 时,一切正常,但是一旦我取消注释'protected $description',setDescription 方法就会停止工作。有谁知道为什么会这样?
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Asset extends Model
{
protected $fillable = [
'type', 'title','origin',
];
// protected $description;
public function __construct($type, $title, $origin)
{
$this->setType($type);
$this->setTitle($title);
$this->setOrigin($origin);
}
// Setters
public function setType($type){
$this->type = $type;
}
public function setTitle($title)
{
$this->title = $title;
}
public function setOrigin($origin)
{
$this->origin = $origin;
}
public function setDescription($description)
{
$this->description = $description;
}
}
$type = $request->input('type');
$title = $request->input('title');
$origin = $request->input('origin');
// Create new asset
$asset = new Asset($type, $title, $origin);
$asset->setDescription('test');
$asset->save();```
【问题讨论】:
-
您是否检查过您的错误日志等。
-
我在 php_error.log 文件中没有发现任何错误。当我拨打电话时它不会抛出错误,它不会更新数据库。我还确保使用 dd() 将描述添加到 setDescription 函数中,并且一切都在那里
-
你是如何使用它的?它应该可以工作。
-
我刚刚修改了帖子以包含实现
-
这可能是由于对象继承,虽然我可能是错的。如果你想让描述成为一个受保护的属性,那么使用
protected $protectedProperties = [ 'description' ];见stackoverflow.com/questions/46376646/…
标签: php laravel class eloquent lumen