尝试在Laravel中制作一个变种器,但是它没有用。
这是我的例子
public function getEventEndAttribute($date)
{
return Carbon::parse($date)->format('d.m.Y H:i')
}
例如在我的用户模型中,我有一个完美运行的mutator:
// convert email address to lowercase
public function getEmailAttribute($value) {
return strtolower($value);
}
因此,即使用户在视图中使用大写字母编写电子邮件,它也会转换为小写....
我希望我的日期相同......从MySQL DB格式转换为我的本地格式
这是从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)
{
//
}
}
答案 0 :(得分:4)
通过将日期数组添加到模型中,您实际上可以让laravel自动将日期变为Carbon
对象:
protected $dates = [
'created_at',
'updated_at',
'event_end'
];
然后您可以在刀片模板中对其进行格式化:
{{ $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
答案 1 :(得分:0)
您可以尝试使用Carbon \ Carbon :: createFromFormat($ format,$ input)。至于parse方法,您可以使用它从字符串创建Carbon实例。