我们说我有一个名为try {
$dbh->beginTransaction();
// A set of queries; if one fails, an exception should be thrown
$stmt1 = $dbh->prepare('first query');
$stmt2 = $dbh->prepare('second query');
$stmt3 = $dbh->prepare('third query');
if ($stmt1->execute() && $stmt2->execute() && $stmt3->execute())
{
$dbh->commit();
}
} catch(Exception $e) {
$dbh->rollback();
}
// output data of each row
while ($rows = $stmt1->fetch(PDO::FETCH_ASSOC)) { ... }
// output data of each row
while ($rows = $stmt2->fetch(PDO::FETCH_ASSOC)) { ... }
// output data of each row
while ($rows = $stmt3->fetch(PDO::FETCH_ASSOC)) { ... }
的控制器,我想创建一个新的英雄对象并将其作为新英雄插入我的数据库。
我的控制器包含以下方法:
HeroController
我希望在用户发布"添加新英雄时使用此方法"形成。
实际上会发生的是我通过我的public function store(Request $request)
{
$hero = new Hero;
$hero->name = $request->name;
$hero->description = $request->description;
$hero->avatar = "None";
$hero->save();
return redirect('/');
}
文件创建一个新的英雄:
routes.php
为什么我的英雄是在Route::post('/heroes/create', function (Request $request) {
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
]);
if ($validator->fails()) {
return redirect('/')
->withInput()
->withErrors($validator);
}
$hero = new Hero;
$heroname = $request->name;
$hero->save();
return redirect('/');
});
中创建的,以及如何更改它以使用我的HeroController?这种感觉更合适..
答案 0 :(得分:2)
您真的需要了解RESTful controllers
和资源路线。这正是你想要的。
https://laravel.com/docs/5.1/controllers#restful-resource-controllers
您应该使用create
操作返回包含英雄创建表单和store
操作的视图,以根据用户输入在数据库中创建和保存数据。
所以所有的逻辑都在一个控制器内,你将拥有的唯一路线是:
Route::resource('heroes', 'HeroController');
答案 1 :(得分:1)
答案 2 :(得分:1)
将路线更改为 路线::后( “英雄/创建”, “@ HeroController商店”);
将当前路线的内容复制到HeroController中的商店功能