Laravel - 数据移动器
Laravel - Date mutator
尝试在 Laravel 中为日期创建一个突变器,但它不起作用。
这是我的例子
public function getEventEndAttribute($date)
{
return Carbon::parse($date)->format('d.m.Y H:i')
}
例如,在我的用户模型中,我有一个运行良好的修改器:
// convert email address to lowercase
public function getEmailAttribute($value) {
return strtolower($value);
}
因此,即使用户写了一封大写字母的电子邮件,它也会被转换为小写....
我想要我的约会对象...从 MySQL 数据库格式转换为我的本地格式
这是从 SO 复制过来的,但仍然无效。
请帮忙。
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\UserRequest;
use Carbon\Carbon;
use Auth;
use DB;
class UserRequestsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//dd(DB::table('user_requests')->get());
return view('user-requests.index', ['userRequests' => DB::table('user_requests')->get()]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('user-requests.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//dd($request->event_end);
$this->validate($request, [
'event_name' => 'required|max:255',
'event_start' => 'required|date',
'event_end' => 'required|date',
]);
$userRequest = new UserRequest();
$userRequest->user_id = Auth::user()->id;
$userRequest->event_name = $request->event_name;
$userRequest->event_start = $request->event_start;
$userRequest->event_end = $request->event_end;
$userRequest->save();
return redirect('requests');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
当我点击我的商店方法时,我得到了这个错误:
您可以尝试 Carbon\Carbon::createFromFormat($format, $input)。至于 parse 方法,您可以使用它从字符串创建 Carbon 实例。
您实际上可以 laravel 通过将日期数组添加到您的模型来自动将日期更改为 Carbon
object:
protected $dates = [
'created_at',
'updated_at',
'event_end'
];
然后您可以在 blade 模板中对其进行格式化:
{{ $myModel->event_end->format('d.m.Y H:i') }}
或者您可以添加 $dateFormat
属性 以自动将此模型上的所有日期转换为您选择的格式:
protected $dateFormat = 'd.m.Y H:i';
查看日期修改器:https://laravel.com/docs/5.3/eloquent-mutators#date-mutators
尝试在 Laravel 中为日期创建一个突变器,但它不起作用。
这是我的例子
public function getEventEndAttribute($date)
{
return Carbon::parse($date)->format('d.m.Y H:i')
}
例如,在我的用户模型中,我有一个运行良好的修改器:
// convert email address to lowercase
public function getEmailAttribute($value) {
return strtolower($value);
}
因此,即使用户写了一封大写字母的电子邮件,它也会被转换为小写....
我想要我的约会对象...从 MySQL 数据库格式转换为我的本地格式
这是从 SO 复制过来的,但仍然无效。 请帮忙。
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\UserRequest;
use Carbon\Carbon;
use Auth;
use DB;
class UserRequestsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//dd(DB::table('user_requests')->get());
return view('user-requests.index', ['userRequests' => DB::table('user_requests')->get()]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('user-requests.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//dd($request->event_end);
$this->validate($request, [
'event_name' => 'required|max:255',
'event_start' => 'required|date',
'event_end' => 'required|date',
]);
$userRequest = new UserRequest();
$userRequest->user_id = Auth::user()->id;
$userRequest->event_name = $request->event_name;
$userRequest->event_start = $request->event_start;
$userRequest->event_end = $request->event_end;
$userRequest->save();
return redirect('requests');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
当我点击我的商店方法时,我得到了这个错误:
您可以尝试 Carbon\Carbon::createFromFormat($format, $input)。至于 parse 方法,您可以使用它从字符串创建 Carbon 实例。
您实际上可以 laravel 通过将日期数组添加到您的模型来自动将日期更改为 Carbon
object:
protected $dates = [
'created_at',
'updated_at',
'event_end'
];
然后您可以在 blade 模板中对其进行格式化:
{{ $myModel->event_end->format('d.m.Y H:i') }}
或者您可以添加 $dateFormat
属性 以自动将此模型上的所有日期转换为您选择的格式:
protected $dateFormat = 'd.m.Y H:i';
查看日期修改器:https://laravel.com/docs/5.3/eloquent-mutators#date-mutators