Đầu tiênLưu dữ liệu vào cơ sở dữ liệu trong Laravel 5
Tôi đã viết một tập lệnh di chuyển.
Second
Tôi chạy php artisan migrate
để di chuyển bảng vào cơ sở dữ liệu của tôi.
Cơ sở dữ liệu
Bây giờ, tôi có một bảng subscribes
trong cơ sở dữ liệu của tôi. Nó có 2 trường: id
và email
.
Route
Route::post('/subscribe', array('as' =>'subscribe','uses'=>'[email protected]'));
Mẫu
<?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);
}
}
khiển
<?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.');
}
}
?>
Lỗi
Câu hỏi
Tại sao tôi không thể làm $subscribe = new Subscribe;
?
Thực tiễn tốt nhất để chèn dữ liệu vào cơ sở dữ liệu bằng Laravel 5 là gì?
Cập nhật
Nhờ @ Mark Baker. Dường như tôi có vấn đề với không gian tên của mình.
Khoảng cách tên này hơi khó hiểu với tôi ngay bây giờ. Ai đó có thể xin vui lòng làm rõ hoặc giải thích một chút?
Mọi thứ được đánh giá cao.
Xin cảm ơn trước.
Mô hình Đăng ký của bạn nằm trong không gian tên 'Ứng dụng'; bạn không đề cập đến không gian tên cho bộ điều khiển của bạn: vì vậy có lẽ '$ subscribe = new \ App \ Subscribe;' –
Có vẻ như nó sửa lỗi của tôi. : D. Làm thế nào để sửa lỗi này nếu tôi không muốn sử dụng '\ App \' trước khi đăng ký. – ihue
Nếu bạn không muốn khai báo không gian tên mỗi khi bạn khởi tạo một mô hình Đăng ký, thì đừng đặt tên cho nó, hoặc đặt 'sử dụng' ở đầu Bộ điều khiển của bạn –