如何将表单数据提交到 MySQL 数据库
How to Submit Form Data into MySQL Database
我对 Laravel 和一般编码还比较陌生。我正在尝试使用 Eloquent 并将数据从我的表单传递到 MySQL 数据库中。我可以 "submit" 没有任何错误,但在 table 中看不到数据。我觉得我的代码越来越混乱,因为我正在尝试解决这个问题,我希望对我的代码进行审查。通过阅读教程、书籍和审查其他人的代码,我尝试了几种不同的方法来做到这一点。
路线
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');
}
View/Blade
<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>
我希望它能将数据传递给我的 table 名为 "blogs."
所以经过多次修改终于解决了这个问题
我做的第一件事是将我的控制器移动到 /app/books。php
我将代码简化为:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class books extends Model
{
protected $fillable = [
'title',
'author',
'category',
];
}
然后我将路由修改为不包含重定向:
Route::post('/submitbook', function (Request $request) {
$data = $request->validate([
'title' => 'required|max:255',
'author' => 'required|max:255',
'category' => 'required|max:255',
]);
也许最大的决定是偶然发生的。我正在处理一个单独的问题,必须清除我的 known_hosts 文件,然后一切正常。
我对 Laravel 和一般编码还比较陌生。我正在尝试使用 Eloquent 并将数据从我的表单传递到 MySQL 数据库中。我可以 "submit" 没有任何错误,但在 table 中看不到数据。我觉得我的代码越来越混乱,因为我正在尝试解决这个问题,我希望对我的代码进行审查。通过阅读教程、书籍和审查其他人的代码,我尝试了几种不同的方法来做到这一点。
路线
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');
}
View/Blade
<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>
我希望它能将数据传递给我的 table 名为 "blogs."
所以经过多次修改终于解决了这个问题
我做的第一件事是将我的控制器移动到 /app/books。php
我将代码简化为:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class books extends Model
{
protected $fillable = [
'title',
'author',
'category',
];
}
然后我将路由修改为不包含重定向:
Route::post('/submitbook', function (Request $request) {
$data = $request->validate([
'title' => 'required|max:255',
'author' => 'required|max:255',
'category' => 'required|max:255',
]);
也许最大的决定是偶然发生的。我正在处理一个单独的问题,必须清除我的 known_hosts 文件,然后一切正常。