我有一个输入3个字段(firstname
,lastname
,date
)的表单,我的问题是日期格式。
这里是一个例子。我输入了firstname
,lastname
和date
。
date
的格式正确=> 01-02-1980
的格式。
但是在我的PhpMyAdmin中,我== 318211200是date
:S
在我的概述(面板)中,我还有318211200
但没有01-02-1980
在我的 AdminController 中,我知道了
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Student;
class AdminController extends Controller
{
public function index(){
$students = Student::oldest()->paginate(5);
return view('admin.index', compact('students'))
->with('i', (request()->input('page',1)-1)*5);
}
public function store(Request $request)
{
$request->validate([
'firstname' => 'required',
'lastname' => 'required',
'date' => 'required'
]);
Student::create($request->all());
return redirect()->route('admin.index')
->with('success', 'save');
}
}
对于我的 index.blade
<thead>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Date</th>
</tr>
</thead>
@foreach($students as $student)
@php
$date=date('d-m-Y', $student['date']);
@endphp
<tr>
<td> {{$student->firstname}}</td>
<td> {{$student->lastname}} </td>
<td> {{$student->date}} </td>
请问您有个主意吗? 我先谢谢你
答案 0 :(得分:0)
数据库表上的日期列必须为datatime
数据类型。因此,这两个选项之一都可以:
选项1: 在您的迁移文件中,将日期列的代码更改为
$table->dateTime('date');
然后运行artisan命令以回滚并更新数据库
php artisan migrate:refresh
然后尝试从表单提交数据。
选项2:
从phpMyAdmin手动更改表上date
字段的数据类型。
在从表单提交数据之前,您可能必须截断数据库表。
答案 1 :(得分:0)
可能是因为您使用了“时间”列类型。尝试将列定义为“日期”。在您的迁移文件中,您应该像
$table->date('date');
答案 2 :(得分:0)
好像您的date
列的数据类型可能不正确。考虑使用datetime
。
如果您愿意,可以通过以下方式更改表格上的列:
ALTER TABLE students MODIFY date datetime;
答案 3 :(得分:0)
由于您尚未发布迁移,因此我将不得不猜测您尚未在数据库中定义日期列,因此未定义将日期作为输入。因此,我建议您使用以下代码更新此特定表的迁移,并刷新迁移。
$table->date('date');
现在,您有一个启用日期的列以输入正确的值。在此之后,我建议您使用Carbon来由 Carbon 管理日期格式和其他令人惊奇的东西 如果您是laravel的新手,check this video会给您带来基本的了解,虽然它有点老,但是您会明白的。
完成此操作后,在check this page处可以使用所有开箱即用的选项来操作日期。有任何问题,请告诉我
快乐的编码!