【发布时间】:2019-04-13 19:30:53
【问题描述】:
我对 Laravel 和一般编码比较陌生。我正在尝试使用 Eloquent 并将数据从我的表单传递到 MySQL 数据库。我可以“提交”而没有任何错误,但看不到表中的数据。我觉得我的代码变得越来越混乱,因为我正试图弄清楚这一点,我很想回顾一下我的代码。通过阅读教程、书籍和查看其他人的代码,我尝试了几种不同的方法。
路线
Route::post('submit', function (Request $request) {
$data = $request->validate([
'title' => 'required|max:255',
'category' => 'required|max:255',
'content' => 'required|max:900',
]);
return redirect('submit');
});
控制器
<?php
public function store(Request $request)
{
Post::create([
'title' => $request->title,
'category' => $request->category,
'content' => $request->content,
]);
return redirect('views.submit');
}
视图/刀片
<div>
<form action='' method='post'>
@csrf
<p><label>Title</label><br/>
<input type='text' name='title' value=''><?php if (isset($error)) {
echo $_POST['title'];
}?></p>
<p><label>Category</label><br/>
<textarea name='category' cols='60' rows='10'><?php if (isset($error)) {
echo $_POST['category'];
}?></textarea></p>
<p><label>Content</label><br/>
<textarea name='content' cols='60' rows='10'><?php if (isset($error)) {
echo $_POST['content'];
}?></textarea></p>
<p><input type='submit' name='submit' value='Submit'></p>
</form>
</div>
我希望这会将数据传递到名为“博客”的表中。
【问题讨论】:
-
危险:此代码是vulnerable to XSS 用户输入需要转义才能插入到 HTML 文档中!。
-
你应该learn how to use the label element properly。如果没有 for 属性或其中的表单控件,标签是无用的。
-
谢谢@Quentin 我一定会做出这些改变。我简要阅读了您包含的链接,并且需要花一些时间来阅读它。你能告诉我我的代码中缺少什么阻止数据移动到 SQL 数据库吗?
-
在标签建议上,这会实现您的建议吗?
标签: php mysql form-submit homestead laravel-5.8