为了账号安全,请及时绑定邮箱和手机立即绑定

想使用 laravel 将 pdf 文件上传到 mysql

想使用 laravel 将 pdf 文件上传到 mysql

PHP
紫衣仙女 2022-12-30 16:53:09
你好我是 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();

    });

}


查看完整回答
反对 回复 2022-12-30
?
翻阅古今

TA贡献1780条经验 获得超5个赞

不,这意味着您的“posts”表有一个名为“post”的列,并且该列没有默认值并且不接受假定为 null。

所以你可以这样解决这个问题:

create table posts ( 
     ..., 
     post varchar(10000) DEFAULT '' not null,
     ...
);


查看完整回答
反对 回复 2022-12-30
  • 2 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信