【问题标题】:Laravel: created new eloquent model, but laravel does not recognize itLaravel:创建了新的 eloquent 模型,但 laravel 无法识别它
【发布时间】:2015-07-07 11:19:55
【问题描述】:

我的新模型:

<?php

class Style extends Eloquent {

    protected $table = 'styles';

}

定义路线:

Route::group(array('prefix' => '/templates'), function(){
   Route::post('/style-create', array('uses' => 'StyleController@postCreateStyle', 'as' => 'postCreateStyle'));
});

还有模型的控制器:

<?php

class StyleController extends BaseController {

    public function postCreateStyle() {

        $style = new Style();
        $style->save();

        return Redirect::route('getStyleHome');
    }

}

还有html表单:

<form role="form" method="post" action="{{ URL::route('postCreateStyle') }}">
   <!-- FIELDS -->

   <input type="submit" value="{{ isset($style) ? 'Save' : 'Create' }} template" class="btn btn-lg btn-primary" />
</form>

如果我点击提交,我会收到此错误:

[2015-04-28 14:11:59] production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to undefined method Style::save()' in C:\xampp\htdocs\cspage\app\controllers\StyleController.php:18
Stack trace:
#0 [internal function]: Illuminate\Exception\Handler->handleShutdown()
#1 {main} [] []

我已经重启了xampp,重新导入了整个数据库,我已经清除了自动加载:php artisan dump-autoload,但是错误仍然存​​在。我做错了什么?

【问题讨论】:

  • 您是否有一个名为 style 的迁移?另外,我假设这是 L4?
  • 也试试php composer dump-autoload

标签: php exception laravel


【解决方案1】:

我不知道 Laravel 的内部结构是如何工作的,但问题是由迁移和模型名称引起的。是一样的。正如@ceejayoz 所建议的,我创建了一个新的迁移:create_styles_table 并重新创建了模型:Style

【讨论】:

    【解决方案2】:

    我不知道 Laravel 的内部结构是如何工作的,但问题是由迁移和模型名称引起的。是一样的。正如@ceejayoz 所建议的,我创建了一个新的迁移:create_styles_table 并重新创建了模型:Style

    Laravel 4 缺少命名空间意味着你必须对类的命名小心一点。如果您执行php artisan migrate:make style,它将创建一个名为Style 的新类。如果您创建 Style 模型,Laravel 可能会加载迁移类而不是您期望的 Eloquent 模型 - 因此,它将缺少预期的功能。

    在 Laravel 5 中,命名空间意味着 App\Style 模型和 Style 迁移之间没有冲突(但您仍然必须小心迁移名称 - 我建议使用更清晰的名称,例如 create_styles_table)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多