我正在尝试使用 Laravel 编写一个可以写入和读取简单 mysql 数据库的简单站点,但由于 Laravel 似乎无法识别我的模型,我遇到了一个句号。要么是那样,要么是我做错了什么。
我的模型:
class Submission extends Eloquent
{
public static $timestamps = true;
protected $fillable = array('location', 'twitter', 'instagram', 'website');
}
我的表单:
@extends('layout')
@section('content')
{{ Input::old('twitter') }} <br />
{{ Input::old('instagram') }} <br />
{{ Input::old('website') }} <br />
{{ Form::open(array('url' => '/submission', 'files' => true)) }}
<div class="form-group">
{{ Form::label('twitter', 'Twitter') }}
{{ Form::text('twitter', '', array('class' => 'form-control')) }}
</div>
<div class="form-group">
{{ Form::label('instagram', 'Instagram') }}
{{ Form::text('instagram', '', array('class' => 'form-control')) }}
</div>
<div class="form-group">
{{ Form::label('website', 'Website') }}
{{ Form::text('website', '', array('class' => 'form-control')) }}
</div>
{{ Form::button('Submit image', array('class' => 'btn btn-success', 'type' => 'submit')) }}
<input type="hidden" name="post" value="yes">
{{ Form::close() }}
@stop
我的 Controller :
public function postView()
{
$submission = new Submission;
$submission->twitter = Input::get('twitter');
$submission->instagram = Input::get('instagram');
$submission->website = Input::get('website');
$submission->save();
return Redirect::to('submission')->withInput();
}
我的数据库看起来像:id location twitter instagram website created_at updated_at
我知道我的数据库配置是正确的,因为我可以使用 DB::table('submissions')->get();
检索信息所以据我所知是 Laravel 无法识别我的模型?
编辑:
结果是将 public static $timestamps = true;
更改为 public $timestamps = true;
修复了它。
最佳答案
这行得通吗:
DB::table('submissions')->get();
因为它应该返回表中的所有内容。如果它有效,那么 Eloquent 找不到您的表,您可以尝试将其放入您的模型中:
protected $table = 'submissions';
它将在模型中明确定义表名,即使它在您的情况下看起来是正确的
否则你需要在你发出请求时告诉 laravel 究竟回答了什么。
- 您的浏览器中是否有错误消息?
- 您的日志文件中是否有错误消息(检查 app/storage/logs 文件夹)
- 你的数据库配置好吗? (app/config/database.php)
- 您是否使用 laravel 迁移创建了表?
希望对你有帮助
关于php - Laravel Eloquent 模型 - 无法访问数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25890758/