我使用关系的条件/约束创建了一个模型游戏,如下所示:
class Game extends Eloquent {
// many more stuff here
// relation without any constraints ...works fine
public function videos() {
return $this->hasMany('Video');
}
// results in a "problem", se examples below
public function available_videos() {
return $this->hasMany('Video')->where('available','=', 1);
}
}
Run Code Online (Sandbox Code Playgroud)
什么时候使用它像这样:
$game = Game::with('available_videos')->find(1);
$game->available_videos->count();
Run Code Online (Sandbox Code Playgroud)
一切正常,因为角色是最终的集合.
我的问题:
当我试图访问它而没有急切加载
$game = Game::find(1);
$game->available_videos->count();
Run Code Online (Sandbox Code Playgroud)
抛出异常,因为它表示" 在非对象上调用成员函数count() ".
运用
$game = Game::find(1);
$game->load('available_videos');
$game->available_videos->count();
Run Code Online (Sandbox Code Playgroud)
工作正常,但对我来说似乎很复杂,因为我不需要加载相关的模型,如果我不在我的关系中使用条件.
我错过了什么吗?我怎样才能确保可以在不使用预先加载的情况下访问available_videos?
对于任何有兴趣的人,我也在http://forums.laravel.io/viewtopic.php?id=10470上发布了这个问题.
假设您正在尝试创建一个新用户,其用户模型(使用软删除)具有针对其电子邮件地址的唯一规则,但数据库中存在已删除的用户.
尝试验证新用户的数据时,由于现有的电子邮件,您将收到验证错误.
我在我的控制器中做了一些额外的验证,但是在模型中拥有它并不是很好吗?
您会建议创建自定义验证规则吗?
由于我现在还没有找到一个干净的解决方案,我对其他人如何解决这个问题感兴趣.
我目前正在将TinyMCE 3.x的插件切换到新版本的TinyMCE 4.0.26.在尝试国际化我的插件标签时遇到了很多问题.
在我的plugin.js中,我通过调用加载语言包
tinymce.PluginManager.requireLangPack('myplugin');
Run Code Online (Sandbox Code Playgroud)
用我的i18n文件langs/de.js看起来像这样:
tinyMCE.addI18n('de', {
myplugin: {
button : 'Link einf\u00FCgen/bearbeiten',
title : 'Link einf\u00FCgen/bearbeiten'
}
});
Run Code Online (Sandbox Code Playgroud)
当我访问静态上下文时
tinymce.i18n.data.myplugin
Run Code Online (Sandbox Code Playgroud)
我可以看到变量按钮和标题都可用.
问题:
当调用editor.getLang('myplugin.button')时,我得到{#myplugin.button}而不是相应的变量值.
在我对源代码进行了一些调查之后,我发现它希望语言代码存在于tinyMCE.i18n.data .....中,这是不可用的
getLang: function(name, defaultVal) {
return (
this.editorManager.i18n[(this.settings.language || 'en') + '.' + name] ||
(defaultVal !== undefined ? defaultVal : '{#' + name + '}')
);
},
Run Code Online (Sandbox Code Playgroud)
@see https://github.com/tinymce/tinymce/blob/4.0.26/js/tinymce/classes/Editor.js#L1105
我做错了什么吗?有没有人为新的TinyMCE版本创建了一个插件并设法使国际化工作?