SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец «DescAnunUser» не может быть нулевым

Я работаю с Laravel над своим школьным проектом (новичок в программировании), и у меня есть ошибка, которую я не знаю, как решить.

Поэтому, когда я пытаюсь что-то добавить/обновить в своей таблице, возникает следующая ошибка:

Бессонница ПОСТ

Таблица, модель и контроллер следующие:

Schema::create('TblAnunUsuario', function (Blueprint $table) {
            $table->engine = 'InnoDB';
            $table->id('idAnunUser');
            $table->string('TituloAnunUser');
            $table->string('DescAnunUser');
            $table->integer('PrecoAnunUser');
            $table->string('RequisitosAnunUser');
            $table->string('ImgAnunUser');
            $table->char('StatusAnunUser', 1);
            $table->dateTime('DataAnunUser');
            $table->unsignedBigInteger('idUserAnunUser')->unsigned();
            $table->foreign('idUserAnunUser')->references('idUser')->on('TblUsuario');
            $table->unsignedBigInteger('idTipoServAnunUser')->unsigned();
            $table->foreign('idTipoServAnunUser')->references('idTipoServ')->on('TblTipoServico');  
use HasFactory;
    public $timestamps = false;
    protected $primaryKey = 'idAnunUser';
    protected $table = 'TblAnunUsuario';
    protected $fillable = ['TituloAnunUser', 'DescAnunUser', 'PrecoAnunUser', 'RequisitosAnunUser','ImgAnunUser', 'StatusAnunUser', 'DataAnunUser', 'idUserAnunUser', 'idTipoServAnunUser'];
public function addAnunUsuario(Request $request)
    {
        $anunuser = New TblAnunUsuario();

        $anunuser->TituloAnunUser = $request->TituloAnunUser;
        $anunuser->DescAnunUser = $request->DescAnunUser;
        $anunuser->PrecoAnunUser = $request->PrecoAnunUser;
        $anunuser->RequisitosAnunUser = $request->RequisitosAnunUser;
        $anunuser->ImgAnunUser = $request->ImgAnunUser;
        $anunuser->StatusAnunUser = $request->StatusAnunUser;
        $anunuser->DataAnunUser = $request->DataAnunUser;
        $anunuser->idUserAnunUser = $request->idUserAnunUser;
        $anunuser->idTipoServAnunUser = $request->idTipoServAnunUser;

        $result = $anunuser->save();

        if ($result)
        {
            return response()->json([
                'status'=>'200',
                'message'=>'Anúncio inserido com sucesso',
            ]);
        } else {
            return response()->json([
                'status'=>'400',
                'message'=>'Falha ao inserir o anúncio',
            ]); 
        }
    }

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

Community 19.11.2022 10:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
80
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

первый вариант у вас есть: $table->string('DescAnunUser')->nullable(); и снова запустите миграцию И второй вариант у вас есть:

public function addAnunUsuario(Request $request)
{           $request->validate([
            'DescAnunUser' => 'required'
            ]);  
      $anunuser = New TblAnunUsuario();

    $anunuser->TituloAnunUser = $request->TituloAnunUser;
    $anunuser->DescAnunUser = $request->DescAnunUser;
    $anunuser->PrecoAnunUser = $request->PrecoAnunUser;
    $anunuser->RequisitosAnunUser = $request->RequisitosAnunUser;
    $anunuser->ImgAnunUser = $request->ImgAnunUser;
    $anunuser->StatusAnunUser = $request->StatusAnunUser;
    $anunuser->DataAnunUser = $request->DataAnunUser;
    $anunuser->idUserAnunUser = $request->idUserAnunUser;
    $anunuser->idTipoServAnunUser = $request->idTipoServAnunUser;

    $result = $anunuser->save();

    if ($result)
    {
        return response()->json([
            'status'=>'200',
            'message'=>'Anúncio inserido com sucesso',
        ]);
    } else {
        return response()->json([
            'status'=>'400',
            'message'=>'Falha ao inserir o anúncio',
        ]); 
    }
}

первое решение недействительно, потому что мне нужно добавить новый анун, а все поля в сообщении Insomnia (изображение) пусты, второй вариант работает для POST Insomnia, но в MYSQL он не создает новый анун в таблице.

Shalgun 19.11.2022 06:20

@Shalgun добавьте поле TituloAnunUser, также поданное в обязательное поле, например $request->validate([ 'DescAnunUser' => 'обязательно', TituloAnunUser => 'обязательно']);

Umer Fayyaz 19.11.2022 08:55

вы должны добавить требуемую проверку во все ваши поля, bcz если пользователь не заполнит поле, то он отправит требуемое сообщение

Umer Fayyaz 19.11.2022 08:56

Другие вопросы по теме