ПервыеСохранение данных в базе данных в Laravel 5
Я написал сценарий миграции.
Второй
Я бегу php artisan migrate
перенести таблицу в моей базе данных.
Database
Теперь у меня есть subscribes
таблицу в моей базе данных. Имеет 2 поля: id
и email
.
Маршрут
Route::post('/subscribe', array('as' =>'subscribe','uses'=>'[email protected]'));
Модель
<?php namespace App;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
class Subscribe extends Model {
protected $table = 'subscribes';
//Validation Rules and Validator Function
public static function validator($input){
$rules = array(
'email' =>'required|email'
);
return Validator::make($input,$rules);
}
}
Контроллер
<?php namespace App\Http\Controllers;
use Input, Validator, Auth, Redirect;
class AccountController extends Controller {
public function postSubscribe() {
$subscribe = new Subscribe; <-------- Line#46 (BUG HERE)
$subscribe->email = Input::get('email');
$subscribe->save();
dd("Hi");
return Redirect::to('/')
->with('success','You have been successfully subscribe to us.');
}
}
?>
Ошибка
Вопросы
Почему я не могу сделать $subscribe = new Subscribe;
?
Какова наилучшая практика для Вставить данные в базу данных с помощью Laravel 5?
Update
Благодаря @Mark Бейкер. Кажется, что у меня проблема с моим пространством имен.
Этот намблинг немного запутанный для меня прямо сейчас. Может кто-нибудь , пожалуйста, уточнить или объяснить это немного?
Все, что ценится.
Заранее спасибо.
Модель вашей подписки находится в пространстве имен 'App'; вы не упоминаете пространство имен для своего контроллера: так что, возможно, '$ subscribe = new \ App \ Подписаться;' –
Похоже, что он исправляет мою проблему. : D. Как исправить это, если я не хочу использовать '\ App \' перед моей подпиской. – ihue
Если вы не хотите объявлять пространство имен каждый раз, когда вы создаете экземпляр модели Subscribe, то не используйте это пространство или не устанавливайте 'use' в верхней части вашего контроллера –