私はLaravelを初めて使用しています。レコードをデータベーステーブルに追加する簡単なフォームを作成しようとしています(IDと名前の2つのフィールドがあります)。Laravelシンプルフォームがエラーとセッション変数を設定しない
Route::group(['middleware' => ['web']], function() {
Route::get('/banks/add', '[email protected]');
Route::post('/banks/add', '[email protected]');
});
BanksController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Requests\BankFormRequest;
use App\Bank;
class BanksController extends Controller
{
public function add() {
return view('banks.add');
}
public function store(BankFormRequest $request) {
$bank = new Bank(array(
'name' => $request->get('name'),
));
$bank->save();
return redirect('/banks/add')->with('status', 'Your bank has been created! Its name is: '.$request->get('name'));
}
}
routes.phpの
BankFormRequest.php
0:ここは、私がこれまで持っているコードです。
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class BankFormRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required|unique:banks|max:255',
];
}
}
Bank.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Bank extends Model
{
public $timestamps = false;
protected $guarded = ['id'];
}
銀行/ add.php
<form id="registerForm" role="form" method="post">
<pre><?=var_dump($errors)?></pre>
<pre>
<?php if (session()->has('status')): ?>
<?=session('status')?>
<?php endif; ?>
</pre>
<?php if (isset($errors) && $errors->any()): ?>
<?php foreach ($errors->all() as $error): ?>
<p class="alert alert-danger"><?=$erorr?></p>
<?php endforeach; ?>
<?php endif; ?>
<input type="hidden" name="_token" value="<?=csrf_token()?>">
<div class="form-group">
<label>Name</label>
<input type="text" class="form-control" placeholder="Bank name" name="name">
</div>
<button type="submit" class="btn btn-primary">Add</button>
</form>
銀行テーブル
CREATE TABLE `banks` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
銀行/追加ビューでは、$ errorsとsession( 'status')変数の2つのvar_dumpsとフォームがありますが、それらは常にNULLです。さもなければ、フォームバリデーターはうまく動作し、私が定義したルールに合格すれば、データベースに自分の入力を挿入します。
エラーが表示されない原因は何ですか?
'view'ファイルと' table'構造体を投稿してください。また、エラーメッセージを投稿してください。 –
私の投稿を編集しました。私は何の誤りもありません。すべては、変数が常に空であるため、エラーまたは成功メッセージが表示されないように意図されたとおりに動作します。 –
あなたのコントローラで 'use Session;'をインポートしませんでした。これを試して。 –