你好我是 laravel 的新手。出于我的项目目的,我有一个功能可以在数据库中上传 pdf 文件。但数据未存储在数据库中。这是我尝试的代码=控制器-<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use Auth;use DB;class PostsController extends Controller{ public function index() { $id = Auth::id(); $user = DB::table('users')->find($id); return view('posts', ['user' => $user]); } public function __construct() { $this->middleware('auth'); } public function store() { //dd(request()->all()); $data = request()->validate(['pcaption' => 'required']); Auth()->user()->posts()->create($data); dd(request()->all());}}模型-<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class post extends Model{ protected $guarded = []; public function user() { return $this->belongsTo(User::class); }}来自本地主机的错误-Illuminate\Database\QueryExceptionSQLSTATE[HY000]: General error: 1364 Field 'post' doesn't have a default value (SQL: insert into `posts` (`pcaption`, `user_id`, `updated_at`, `created_at`) values (bh, 3, 2020-04-17 17:42:53, 2020-04-17 17:42:53))这意味着发布数据没有保存在数据库中。哪里是我的错
2 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
在您的数据库表帖子列中选择 as Not Null。出于这个原因,您会收到此错误。在您的迁移文件中,您应该使用它来解决您的问题
public function up(){
Schema::create('posts', function (Blueprint $table) {
....
$table->text('post')->nullable();
$table->timestamps();
});
}
翻阅古今
TA贡献1780条经验 获得超5个赞
不,这意味着您的“posts”表有一个名为“post”的列,并且该列没有默认值并且不接受假定为 null。
所以你可以这样解决这个问题:
create table posts ( ..., post varchar(10000) DEFAULT '' not null, ... );
- 2 回答
- 0 关注
- 82 浏览
添加回答
举报
0/150
提交
取消