ОШИБКА: Столбец не найден: 1054 Неизвестный столбец «updated_at» в «списке полей» - PullRequest
2 голосов
/ 28 мая 2019

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

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

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

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

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

  }

А это мой Friendly.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 не найден, а create не работает, очевидно, потому что id не найден.

Ответы [ 2 ]

2 голосов
/ 28 мая 2019

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

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

EDIT

пожарные команды,

php artisan make:migration modify_friendships_table;

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

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

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

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

php artisan migrate

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

0 голосов
/ 28 мая 2019

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

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

class Friendships extends Model
{
    public $timestamps = false;
    protected $fillable = ['requester', 'user_requested', 'status'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...