Nano Hash - криптовалюты, майнинг, программирование

Модель пользователя по умолчанию выдает ошибку в laravel

Модель по умолчанию «Пользователь» в laravel выдает ошибку, когда я пытаюсь ее использовать. Я пробовал,

$user = new User();
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->name = "Blah Blah";
$user->access_type = "admin";
$user->access_status = 1;
$user->save();

и выдается ошибка

Symfony \ Component \ Debug \ Exception \ FatalErrorException

Call to undefined method User::save()

В чем проблема? Я также пытался User::all() получить значения, что также выдает ошибку Call to undefined method User::all().

Update1: вот моя модель

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'users';

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = array('password');

    /**
     * Get the unique identifier for the user.
     *
     * @return mixed
     */
    public function getAuthIdentifier()
    {
        return $this->getKey();
    }

    /**
     * Get the password for the user.
     *
     * @return string
     */
    public function getAuthPassword()
    {
        return $this->password;
    }

    /**
     * Get the token value for the "remember me" session.
     *
     * @return string
     */
    public function getRememberToken()
    {
        return $this->remember_token;
    }

    /**
     * Set the token value for the "remember me" session.
     *
     * @param  string  $value
     * @return void
     */
    public function setRememberToken($value)
    {
        $this->remember_token = $value;
    }

    /**
     * Get the column name for the "remember me" token.
     *
     * @return string
     */
    public function getRememberTokenName()
    {
        return 'remember_token';
    }

    /**
     * Get the e-mail address where password reminders are sent.
     *
     * @return string
     */
    public function getReminderEmail()
    {
        return $this->email;
    }

}

Обновление 2: я попытался написать другое имя модели и имя класса как Users, которое отлично работает. Но для аутентификации это должна быть таблица User, верно?

15.05.2014

  • Не могли бы вы добавить свой код модели пользователя в вопрос. 15.05.2014
  • Я ничего не изменил, кроме имени таблицы в файле по умолчанию. Я обновлю его. 15.05.2014
  • Можете попробовать $user = new User; ... (без функциональных скобок) 15.05.2014
  • Я думаю, что есть какая-то другая функция по умолчанию, которая переопределяет эту модель. Есть ли способ отладить эту вещь? Это новая установка laravel, и это моя единственная функция. Так что это не моя ошибка. 15.05.2014
  • Попробуйте расширить \Eloquent...Похоже, Eloquent не расширен.. 15.05.2014
  • У вас есть другой класс где-то под названием User? 15.05.2014
  • @ChintanParekh попробовал это. Нет надежды. 15.05.2014
  • @DamienPirsy Это новая установка, и это единственная функция, которая у меня есть. Должна быть какая-то ошибка самой laravel. 15.05.2014
  • Я попытался написать другие имена моделей и имя класса как «Пользователи», которые отлично работают. Но для аутентификации это должна быть таблица User, верно? 15.05.2014
  • Что вы подразумеваете под аутентификацией? (кстати, если это работает с моделью Users, то должно работать и с моделью User, у вас определенно есть очень маленькая ошибка) 15.05.2014
  • @ChintanParekh Это должно работать. Но это не так. Я имею в виду встроенную функцию аутентификации laravel. Он проверяет учетные данные класса User, верно? 15.05.2014
  • Да, но есть обходной путь... вы можете открыть app-›config-›auth.php и затем изменить имя таблицы на требуемую (Ссылка: laravel-recipes.com/recipes/12) 15.05.2014
  • Однако я до сих пор не понимаю вашей проблемы с моделью пользователя, а не с моделью пользователей. Возможно, вы упускаете какую-то мелочь. 15.05.2014

Ответы:


1

Причина проблемы в том, что автозагрузчик загружает неправильную "пользовательскую" модель. Пожалуйста, взгляните на файл "/vendor/composer/autoload_classmap.php". Внутри возвращаемого массива значение для ключа «Пользователь» должно быть $baseDir . '/app/models/User.php

return array(
...,
'User' => $baseDir . '/app/models/User.php',
...,
);
25.11.2014

2

Возможно, User является зарезервированным словом, просто дайте модели другое имя, скажем, UserTbl.

15.05.2014
  • Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его сообщением — вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно репутация, вы сможете комментировать любой пост. 15.05.2014
  • Спасибо за разъяснения jaap 15.05.2014

  • 3

    До сих пор не получил ответа на свой вопрос. В любом случае, теперь я запускаю его, используя новую модель с именем Users, имея в виду те же сомнения.

    24.06.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

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

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..