我有一个查询范围方法,用于过滤模型作者在Foo模型上的结果.复杂的是作者没有直接关系.
Foo属于Bar and Bar属于User.如果Foo属于User,我可以这样做:
public function scopeAuthorOnly($query, User $user)
{
return $query->whereuser_id($user->id);
}
Run Code Online (Sandbox Code Playgroud)
这显然不起作用,因为Foo模型没有user_id列,而是有一个bar_id列.但是,我不确定如何以过滤user_id的方式构建查询.
有什么指针吗?
抱歉,如果我在这里遗漏了一些东西,因为我是Laravel的新手,但是当我向Mail :: send()方法发送一个闭包以定义邮件收件人时,如果电子邮件地址可用于全局范围,则可以正常工作,例如这个:
Mail::send('frontend.emails.default', $data, function($message)
{
$message->to(Input::get('email'))->subject('Hi');
});
Run Code Online (Sandbox Code Playgroud)
但是,如何将作用域中的值传递给调用方法?例如:
$user = User::find($id);
Mail::send('frontend.emails.default', $data, function($message)
{
$message->to($user->email)->subject('Hi');
});
Run Code Online (Sandbox Code Playgroud)
我尝试将它添加到$ data数组,但是在视图中使用它并且在回调中不可用.
谢谢你的帮助.
我在全局范围内有一个变量,它被分配了一个类的实例,如下所示:
window.someInstance = new MyClass();
Run Code Online (Sandbox Code Playgroud)
稍后,我需要用新实例替换该变量,但是在类本身的方法中这样做是否可行/可接受?例如:
function MyClass () {
this.myClassMethod = function () {
window.someInstance = new MyClass();
};
}
window.someInstance = new MyClass();
window.someInstance.myClassMethod.call();
Run Code Online (Sandbox Code Playgroud)
我知道一个奇怪的场景,但它干净利落,我只是不确定这是否会产生任何内存或引用问题?
谢谢
我可能在这里遗漏了一些东西但是我有一个非常简单的帮助器类来创建一个目录:
// Helper class
<?php namespace MyApp\Helpers;
use User;
use File;
class FileSystemHelper
{
protected $userBin = 'users/uploads';
public function createUserUploadBin(User $user)
{
$path = $this->userBin . '/' . $user->id;
if ( ! File::isDirectory($path))
{
File::makeDirectory($path);
}
}
}
Run Code Online (Sandbox Code Playgroud)
以及相关测试:
// Associated test class
<?php
use MyApp\Helpers\FileSystemHelper;
class FileSystemHelperTest extends TestCase {
protected $fileSystemHelper;
public function setUp()
{
$this->fileSystemHelper = new FileSystemHelper;
}
public function testNewUploadBinCreatedWhenNotExists()
{
$user = new User; // this would be mocked
File::shouldReceive('makeDirectory')->once();
$this->fileSystemHelper->createUserUploadBin($user);
}
} …Run Code Online (Sandbox Code Playgroud) 我希望在相关模型上获得多列的平均值,如下所示:
$this->reviews()->avg('communication', 'friendliness')
Run Code Online (Sandbox Code Playgroud)
沟通和友善是一系列列名.但是看起来聚合函数只支持单列名,所以我这样做:
$attributes = array('communication', 'friendliness');
$score = array();
foreach ($attributes as $attribute)
{
$score[] = $this->reviews()->avg($attribute);
}
return round(array_sum($score) / sizeof($attributes), 1);
Run Code Online (Sandbox Code Playgroud)
这导致多个查询.有关于最佳实践的建议吗?
谢谢
我一直在努力工作一个小时左右,并且空白了.基本上我需要花费当前时间,增加30分钟,然后向下舍入到接下来的15分钟.
例子:
我的PHP生疏了,我一直在混淆日期添加和圆形方法试图让它工作,我知道它很简单 - 刚刚用完了想法!
谢谢
抱歉,如果这是一个愚蠢的问题,因为很多Laravel 4对我来说都是新手.我试图覆盖核心密码功能中的几个方法,因为我想定义自己的密码验证规则(在发布时硬编码到核心),并更改错误报告的方法($ errors数组用于其他形式,而不是基于会话的).
所以我的方法是在/ app/lib/MyProject/User中创建一个名为Password.php的新类,如下所示:
<?php namespace MyProject\User;
use Closure;
use Illuminate\Mail\Mailer;
use Illuminate\Routing\Redirector;
use Illuminate\Auth\UserProviderInterface;
class Password extends \Illuminate\Support\Facades\Password
{
/**
* Reset the password for the given token.
*
* @param array $credentials
* @param Closure $callback
* @return mixed
*/
public function reset(array $credentials, Closure $callback)
{
// If the responses from the validate method is not a user instance, we will
// assume that it is a redirect and simply return it from this method and …Run Code Online (Sandbox Code Playgroud) 我看过很多文章(大多是3-5岁),详细介绍了将客户的名字输入订单确认电子邮件的各种方法,但我得到的是空白或未解析的PHP.
例如:
<?php echo $this->__('Hello, %s', Mage::getSingleton('customer/session')->getCustomer()->getFirstname()); ?>
Run Code Online (Sandbox Code Playgroud)
像这样在电子邮件中呈现:
__('Hello,%s',Mage :: getSingleton('customer/session') - > getCustomer() - > getFirstname()); ?>
有人能指出我正确的方向吗?这是在Community Edition 1.7上.
谢谢