хотите загрузить файл PDF в mysql, используя laravel - PullRequest
0 голосов
/ 17 апреля 2020

привет, я новичок в laravel. для моего проекта, у меня есть возможность загрузить файл PDF в базу данных. но данные не хранятся в базах данных.

вот мои попытки кода =

controller-

<?php

namespace 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());

}
}

model-

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class post extends Model
{
    protected $guarded = [];

    public function user()
    {
    return $this->belongsTo(User::class);
    }

}

ошибка localhost-

Illuminate\Database\QueryException
SQLSTATE[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 ]

0 голосов
/ 17 апреля 2020

В столбце публикации таблицы базы данных выберите Not Null. По этой причине вы получаете эту ошибку. В вашем файле миграции вы должны использовать это, чтобы решить вашу проблему

public function up(){
    Schema::create('posts', function (Blueprint $table) {
        ....
        $table->text('post')->nullable();
        $table->timestamps();
    });
}
0 голосов
/ 17 апреля 2020

Нет, это означает, что в вашей таблице "posts" есть столбец, который называется "post", и этот столбец не имеет значения по умолчанию и не принимает значение null.

Таким образом, вы можете решить эту проблему следующим образом:

create table posts ( 
     ..., 
     post varchar(10000) DEFAULT '' not null,
     ...
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...