entity我有一个带有表和表的数据库users。实体表具有created_at和 的字段updated_at。users 表有一个timezone默认值为 的字段America/Toronto。
在我看来,我可以使用以下代码以我想要的格式输出日期:
$entity->created_at->format('M j, Y \\a\\t g:i A')
Run Code Online (Sandbox Code Playgroud)
现在,如何使用用户表中的时区字段输出日期?就像是 ...
$entity->created_at->format('M j, Y \\a\\t g:i A', Auth::user()->timezone);
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种使用Carbon执行此操作的简单方法(因为我在 Laravel 中使用 Eloquent,它将把上面的日期列转换为 Carbon 的实例)。
注意:我只希望在显示日期时更改时区 - 我仍然希望所有日期都存储在数据库中的默认 UTC 时区中。
另外,我在哪里可以找到可用于 Carbon 的有效时区列表?我想将这些存储在我的数据库中,以便用户可以更改他们的默认时区。
我如何组合这两个数组,以便键保持不变,但值是由算术确定的?
注意 - 根据我的示例,每个数组中的键可能并不总是对齐:
$Array1 = ([4] => 100, [5] => 200, [6] => 100, [7] => 400 );
$Array2 = ([2] => 300, [5] => -100, [16] => -500, );
Run Code Online (Sandbox Code Playgroud)
期望的输出:
$Array3 = ([2] => 300, [4] => 100, [5] => 100, [6] => 100, [7] => 400, [16] => -500);
Run Code Online (Sandbox Code Playgroud)
编辑:改进数组以突出"foreach"无法工作的原因
我将按照一些关于Laravel 3的教程,知道,我有一个问题,一个:
@section('post_navigation')
@if(Auth::check())
@include('plugins.loggedin_postnav')
@endif
@endsection
Run Code Online (Sandbox Code Playgroud)
为什么这部分没有出现?
我尝试删除部分中的所有内容,例如;
@section('post_navigation')
<h1>Test</h1>
@endsection
Run Code Online (Sandbox Code Playgroud)
但是不起作用.
完整的代码是:
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
{{ HTML::link('/', 'Instapics', array('class' => 'brand')); }}
<div class="nav-collapse">
<ul class="nav">
@section('navigation')
<li class="active">{{ HTML::link('/', 'Home') }}</li>
@yield_section
</ul>
</div>
@section('post_navigation')
@if(Auth::check())
@include('plugins.loggedin_postnav')
@endif
@endsection
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
[编辑]
我将@endsection更改为@yield_section,然后工作,但是,我仍然不明白,例如(在User_Controller索引视图中):
@section('post_navigation')
@parent
@endsection
Run Code Online (Sandbox Code Playgroud)
为什么不出现包含?
为什么我需要将endsection更改为yield_section?
Laravel路由功能允许您命名资源并命名控制器以配合它.我是Laravel的新手,想知道是否有人知道如何在提供的路由类中扩展资源方法.
基本上说我有:(哪个工作正常)
/invoices
Run Code Online (Sandbox Code Playgroud)
但是说我想要:
/invoices/status/unpaid
Run Code Online (Sandbox Code Playgroud)
这怎么可以实现?
要查看我正在做的基础知识,请查看:http: //laravel.com/docs/controllers#resource-controllers
我在共享的Hostgator服务器上部署了一个Laravel 4应用程序.
当我导航到:
http://mydomain.com/laravel/public/
Run Code Online (Sandbox Code Playgroud)
我可以看到Laravel闪屏.
但是当我尝试访问任何其他途径时,比如,/ users或/ posts我得到了
Internal Server Error 500
http://mydomain.com/laravel/public/posts
Run Code Online (Sandbox Code Playgroud)
控制器:
public function index()
{
$posts = $this->post->all();
return View::make('posts.index', compact('posts'));
}
Run Code Online (Sandbox Code Playgroud)
在Routes.php中:
Route::resource('posts', 'PostsController');
Run Code Online (Sandbox Code Playgroud)
我使用Jeffrey Way的Generator来支撑帖子实体.
这在我的本地机器上工作正常.控制器不包含任何逻辑,它们只输出获取的数据.
错误日志为空.
任何想法要检查什么?.htaccess,也许?这是我在那里:
AddType application/x-httpd-php53 .php
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的表单进行后端验证,但它不起作用.即使我提交了值,它也总是显示验证失败.
$validation = Validator::make(Input::all(), array(
array('email' => 'required'),
array('password' => 'required')
));
if ($validation->fails()) { // This is always failing
echo '<pre>';
print_r(Input::all());
die();
}
die('everything is OK!');
Run Code Online (Sandbox Code Playgroud)
Array
(
[_token] => ZnzZ2aDoTABIZZkvwxZoa7IjHkvK25ndibis5AbA
[email] => somedata
[password] => somemoredata
)
Run Code Online (Sandbox Code Playgroud)
你可以看到它甚至失败了,它清楚地表明了Input:all()这些值的设定.
我正在尝试将转换数组推广到json中,当我在混音中加入雄辩的模型时,它会变得有些混乱.
有没有办法判断这个对象是否是一个雄辩的对象?
像isEloquent()函数一样.
假设我有这个代码用于Sentry身份验证:
try {
$credentials = array(
'email' => Input::get('email'),
'password' => Input::get('password'),
);
$user = Sentry::authenticate($credentials, false);
}
catch (Cartalyst\Sentry\Users\LoginRequiredException $e) {
echo 'Login field is required.';
}
catch (Cartalyst\Sentry\Users\PasswordRequiredException $e) {
echo 'Password field is required.';
}
catch (Cartalyst\Sentry\Users\WrongPasswordException $e) {
echo 'Wrong password, try again.';
}
catch (Cartalyst\Sentry\Users\UserNotFoundException $e) {
echo 'User was not found.';
}
catch (Cartalyst\Sentry\Users\UserNotActivatedException $e) {
echo 'User is not activated.';
}
Run Code Online (Sandbox Code Playgroud)
我想尝试删除所有try和catch(我有我的理由,它是多级身份验证,我试图缩短我的代码).所以我试着检查验证是否失败:
$credentials = array(
'email' => …Run Code Online (Sandbox Code Playgroud) 我正在为一个有很多类似路线的应用编写路由,我想保持DRY,所以我想根据URL的一部分选择控制器,但似乎没有办法与Laravel一起做这件事.
这不起作用,因为$report_slug它不可用.
Route::get('/ad-reports/{report_slug}', array('uses' => Str::title($report_slug).'Controller@showHome'));
Run Code Online (Sandbox Code Playgroud)
如果我使用一个我可以访问的闭包$report_slug,但我找不到任何替换内容的文档return,所以这将返回控制器和操作的文本,但显然我想使用该操作.
Route::get('/ad-reports/{report_slug}', function($report_slug) {
return (Str::title($report_slug).'Controller@showHome');
});
Run Code Online (Sandbox Code Playgroud)
如何根据report_slug?指定控制器?
我正在尝试通过Laravel的迁移文件生成我的数据库,但是当我尝试这样做时,我收到以下错误:
PHP Parse error: syntax error, unexpected '[', expecting ')' in D:\wamp24\www\laravel\app\controllers\SomeController.php
Run Code Online (Sandbox Code Playgroud)
这让我发疯,我可以在我的控制器中注释掉代码时运行迁移文件,但我不能继续这样做.
我也不想重写我的所有代码,因为我几乎每次声明一个数组时都使用方括号(使用方括号比输入'array(〜)'快很多...)
我在wampserver(2.4)上使用PHP 5.3.13,在Win 8.1上使用apache 2.2.22.
Laravel Framework版本4.0.10.
给出错误的代码如下:
class SomeController extends BaseController {
public function someFunc() {
$var= Model::create([
'title' => Input::get('title'),
'description' => Input::get('description'),
]);
}
}
Run Code Online (Sandbox Code Playgroud)
谁知道这个错误的解决方案?
我正在尝试使用laravel 4创建一个应用程序,但我正面临一个网址问题.我已经在我的机器上安装了wamp.我使用此代码在我的httpd-vhost.conf中设置了一个新的虚拟主机
<VirtualHost mobile.dev>
DocumentRoot "C:\wamp\www\mobile.dev\public"
ServerName mobile.dev
<Directory "C:\wamp\www\mobile.dev">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
Allow from 127.0.0.1
Deny from all
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
mobile.dev是一个文件夹,也是我localhost中的域名.这是我的Route.php文件
Route::get('/','HomeController@showWelcome');
Route::post('login','LoginController@userLogin');
Route::get('login','LoginController@getUsers');
Run Code Online (Sandbox Code Playgroud)
当我要求mobile.dev/login它给我请求的网址没有找到.你可以帮我解决这个问题.但是当我要求mobile.dev /它的工作.
这是我的.htaccess文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Run Code Online (Sandbox Code Playgroud)
这是更多细节.当我删除我的htaccess内容一切正常与默认网址http://mobile.dev/index.php/login
所以问题是在我的htaccess和我的虚拟主机重写
我们通常Redirect::back()在控制器内部使用重定向到上次访问的页面,但是,是否有 Laravel 函数可以在视图中用作链接?
laravel-4 ×9
laravel ×8
php ×8
.htaccess ×2
apache ×1
arrays ×1
laravel-3 ×1
php-carbon ×1
timezone ×1
validation ×1