最初
移行スクリプトを書きました。
2番目
_php artisan migrate
_を実行して、テーブルをデータベースに移行します。
データベース
現在、データベースにsubscribes
テーブルがあります。 id
とemail
の2つのフィールドがあります。
ルート
Route::post('/subscribe', array('as' =>'subscribe','uses'=>'AccountController@postSubscribe'));
モデル
_<?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を使用してデータベースにデータを挿入データするためのベストプラクティスは何ですか?
更新
@Mark Bakerに感謝します。名前空間に問題があるようです。
この名前空間は、今の私には少し混乱しています。誰か-お願いそれを少し明確にしたり説明したりできますか?
何でも大歓迎です。
前もって感謝します。
これは、名前空間がPHP=でどのように機能するかを高レベルで概説したもので、これを理解し、問題の解決策を提供するためのものです。
<?php
// This is the namespace of this file, as Laravel 5 uses PSR-4 and the
// App namespace is mapped to the folder 'app' the folder structure is
// app/Http/Controllers
namespace App\Http\Controllers;
// Use statements. You can include classes you wish to use without having
// to reference them by namespace when you use them further on in this
// namespaces scope.
use App\Subscribe;
class MyController extends BaseController
{
public function postSubscribe()
{
// You can now use the Subscribe model without its namespace
// as you referenced it by its namespace in a use statement.
$subscribe = new Subscribe();
// If you want to use a class that is not referenced in a use
// statement then you must reference it by its full namespace.
$otherModel = new \App\Models\Other\Namespace\OtherModel();
// Note the prefixed \ to App. This denotes that PHP should get this
// class from the root namespace. If you leave this off, you will
// reference a namespace relative to the current namespace.
}
}
あなたはこれを試すことができます、単にそれを使用してください:
$subscribe = new App\Subscribe;
使用する App\Subscribe;
。
次に、$subscribe = new Subscribe;
コード内。