ОШИБКА: Столбец не найден: 1054 Неизвестный столбец «updated_at» в «списке полей»

Таким образом, в основном ошибка гласит, что у меня нет столбца с именем updated_at, но я знаю, что у меня его нет, и я не хочу его иметь. В моей таблице базы данных есть только следующие столбцы: запрашивающий, user_requested, id, статус.

это моя модель

class Friendships extends Model
{
    protected $fillable = ['requester', 'user_requested', 'status'];
}

это мой профильконтроллер

 public function sendRequest($id){
        return Auth::user()->addFriend($id);

  }

А это мой friendable.php


namespace App\Traits;
use App\Friendships;

trait Friendable{
    public function test(){
        return 'hi' ;
    }

    public function addFriend($id){
        $Friendship = Friendships::create([
                'requester' => $this->id,
                'user_requested' => $id
        ]);


        if ($Friendship){
            return $Friendship;
        }
        return  'failed';
    }


}

он говорит, что метод addFriend не найден, и создание не работает, по-видимому, потому, что идентификатор не найден.

Попробуйте public $timestamps = false; в модели и проверьте

Rahul 28.05.2019 12:57
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
3
1
3 224
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

По умолчанию Eloquent ожидает, что столбцы created_at и updated_at существуют в ваших таблицах. Если вы не хотите, чтобы Eloquent автоматически управлял этими столбцами, установите для свойства $timestamps вашей модели значение false:

class Friendships extends Model
{
    public $timestamps = false;
    protected $fillable = ['requester', 'user_requested', 'status'];
}  

РЕДАКТИРОВАТЬ

команды огня,

php artisan make:migration modify_friendships_table;

Затем перейдите к файлу миграции, который создается в database/migrations

Напишите код в этом классе,

Schema::table('friendships', function (Blueprint $table) {
    $table->boolean("status")->default(0)->change();
});

сохраните файл выше, затем запустите команду ниже

php artisan migrate

А теперь проверьте, работает ли он.

это сработало, спасибо! но теперь он показывает эту ошибку: Общая ошибка: 1364 Поле «статус» не имеет значения по умолчанию (SQL: вставить в значения friendships (requester, user_requested) (1, 1))

Diogo Cruz 28.05.2019 13:03

Если вы хотите установить status как нулевое значение, если ничего не установлено, вам необходимо создать новый сценарий миграции, чтобы изменить этот столбец, чтобы установить нулевое значение, если не установлено какое-либо значение. Вот документ для столбца изменения. Я внес изменения в ответ. Теперь проверьте.

Rahul 28.05.2019 13:04

но мой статус логический

Diogo Cruz 28.05.2019 13:12

Laravel автоматически попытается установить значение для полей created_at и updated_at. Настоятельно рекомендуется иметь их, однако, если вы не хотите, вы можете отключить их в своей модели.

Для этого просто добавьте public $timestamps = false; к модели. Например:

class Friendships extends Model
{
    public $timestamps = false;
    protected $fillable = ['requester', 'user_requested', 'status'];
}

это сработало, спасибо! но теперь он показывает эту ошибку: Общая ошибка: 1364 Поле «статус» не имеет значения по умолчанию (SQL: вставить в значения дружбы (заявитель, пользователь_запрошено) (1, 1)

Diogo Cruz 28.05.2019 13:04

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