Eloquent save()抛出内部服务器错误

时间:2016-02-24 00:48:37

标签: laravel orm eloquent php-7 slim-3

我正在使用Slim3和Eloquent构建一些API应用程序作为模型的ORM,并且有一些奇怪的问题。

当我保存模型时,我收到内部服务器错误,并且根本无法捕获错误。 我的模型只有两列,id pk自动增量和名称(字符串255) 这是我的解决方案:

型号:

class Version extends Illuminate\Database\Eloquent\Model
{
    protected $table = 'version';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['name'];

    protected $hidden = ['id'];
}

动作:

public function create(RequestInterface $request, ResponseInterface $response)
    {
        $params = $request->getParsedBody();
        $class = $this->model; //fully namespaced class name
        $model = new $class();
        $model->fill($params);

        return $model->save() ?
            $this->success($response, "{$this->getModelName()} successfully saved.") :
            $this->error($response, $model->errors());

    }

我经理将问题本地化到Illuminate\Database\Eloquent\Builder行#1242

中的这部分代码
if (in_array($method, $this->passthru)) {
            return call_user_func_array([$this->toBase(), $method], $parameters);
        }

但我不知道出了什么问题

编辑:

我使用PHP/7.0.0-dev和Slim 3.1

Eloquent PHP 7兼容吗?

1 个答案:

答案 0 :(得分:0)

您的模型是一个雄辩的模型,因此要创建您可以使用以下代码

$version = App\Version::create(['name' => 'Your version name']);

这将删除所有不必要的功能,并保持清洁代码。

在您的情况下,请确保$ request-> getParsedBody(); 返回Eloquent使用它的正确格式。