小编Rob*_*son的帖子

CakePHP:保存后更新会话变量

我有一个User对象,一旦成功进行身份验证,就会隐藏在会话中(没有安全信息)以便于调用,并确定我们是否有经过身份验证的用户或匿名会话.用户可以通过多种途径更改其部分或全部信息,我希望将该会话值保持最新.显而易见的答案是更新afterSave()回调中的值,但这当然违反了MVC.

是否有另一种方法可以捕获一个地方的每个变化,这样我就不必在整个地方放弃会话写入?我想不出任何事情,也没有找到任何其他想法.我是唯一一个尝试这样做的人吗?

谢谢.

最终解决方案:坦率地说,我将neilcrookes的回答标记为答案,因为似乎没有更好的方法.但是,由于这种方式违反了我的OCD意识,我采取了一条略有不同的道路.我决定让我的User::authenticate()方法将经过身份验证的用户对象返回给调用者,以便它可以随心所欲地执行任何操作.呼叫者"想要"做的事情之一就是在会话中删除该值.这是冗余,但它非常非常有限.在我看来,这比从模型中访问会话感觉更好(尽管如果你这样做肯定是该死的,如果你不这样做则该死).

cakephp session-variables reset

4
推荐指数
2
解决办法
4580
查看次数

与SendGrid集成

有人可以帮我理解SendGrid实际添加到应用程序架构的内容吗?作为替代传递引擎(SMTP)和发送后分析,它的作用是否真的有限?我希望它能为交易电子邮件做更多事情,但我看到/读到的所有内容都表明这是限制.

我的主要用例是交易电子邮件(新注册,联系请求等).我真的很想听听其他人如何在他们自己的Web应用程序的上下文中部署SendGrid.您的经历可以帮助我更好地了解如何在我自己的内部进行最佳部署.

谢谢.

sendgrid

3
推荐指数
1
解决办法
2262
查看次数

从命令行检查package.json

这似乎应该/将是简单和可能的,但我还没有找到魔术命令.我坐在具有package.json文件的给定目录中的命令行.我想要做的是执行一个简单的命令来读取该version文件中的值.那可能吗?

$ npm version
{ 'my-project': '6.5.0',
  npm: '2.12.1',
  http_parser: '2.3',
  modules: '14',
  node: '0.12.7',
  openssl: '1.0.1p',
  uv: '1.6.1',
  v8: '3.28.71.19',
  zlib: '1.2.8' }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我所追求的只是价值my-project.可能?

node.js npm

3
推荐指数
1
解决办法
796
查看次数

如何在CakePHP中使用多个po文件?

我刚刚开始在CakePHP中探索i18n的过程,我似乎无法找到允许我使用多个po文件的文件和函数的正确组合.如果我想为每个可翻译文本使用单个po文件(default.po),那可以正常工作,但我发现这非常非常快速地成为一个难以维护的毛球.我已经阅读了文档和我能找到的一些文章,但没有人真正深入研究i18n,而不是简单地使用一个.po文件.

这就是我现在所处的位置:

  • 我已经"烘焙"了我的po模板(.pot文件)并将其复制到app/locale/eng/LC_MESSAGES(我不会使用默认文本作为键,以便我可以轻松找到丢失的键).现在,我有-views-layouts-default.po和-views-pages-index.po.
  • 在那些.po文件中,我输入了我想用于每个键的文本.
  • 在我的主页(views/pages/index.ctp)和默认布局(views/layouts/default.ctp)中,我用__()函数包装了我要翻译的文本键.

但是当我加载主页时,我看到的只是键.没有翻译任何文字.但是,如果我抛出一个default.po文件,那么我放入的任何键都填充得很好.我显然错过了一些拼图,但我找不到它.任何帮助将非常感激.

谢谢.

cakephp internationalization

2
推荐指数
1
解决办法
2749
查看次数

学习Rails:创建指向路径的链接,仅包含嵌套范围内的文本

对于我的生活,我无法弄清楚(或找到正确的搜索文本)如何创建如下所示的链接:

<a href="/publisher" class="button first"><span>This text will be hidden</span></a>
Run Code Online (Sandbox Code Playgroud)

link_toAPI中有一个类似的例子,但它并不能满足我的需求.我不希望我的锚标记有任何文本(所有文本将驻留在嵌套中span),我想链接到一个名为的路由publisher_root.

我已经厌倦了对此表示不满,所以任何帮助都会非常感激.

更新:正如我在下面的评论中提到的,HAML也在这里发挥作用.我最初消除了它,因为它似乎只是一个额外的复杂性.但是,由于它似乎是问题的症结所在,我已经添加了标签,这是我的代码:

#masthead.container
  %h1
    != image_tag( 'home-masthead.png' )
  %p
    - link_to publisher_root, :class => 'button first' do
      %span Link Text
Run Code Online (Sandbox Code Playgroud)

haml ruby-on-rails

2
推荐指数
1
解决办法
2290
查看次数

Apache停止了以下符号链接

昨天,我有一大堆网站本地运行没有问题.今天没有什么打开,我有一个充满了这个日志:

Symbolic link not allowed or link target not accessible: /var/www
Run Code Online (Sandbox Code Playgroud)

我不知道我做了什么(我没有以任何方式打开/更改我的httpd.conf文件),但显然它是坏事.我运行虚拟主机,根目录位于~/Developer/www.为了在具有不同主目录的多台Mac上共享配置文件,我创建了一个/var/www指向的符号链接~/Developer/www.

所有virtualhost配置文件都指向它们DocumentRoot,/var/www/project_directory并且它自己的根目录具有以下FollowSymLinks选项:

<VirtualHost *:80>
  ServerName   localhost
  ServerAlias  localhost.local localhost.dev
  DocumentRoot /var/www/_localhost

  <Directory /var/www/_localhost>
    Options FollowSymLinks Indexes
    AllowOverride None
    Order deny,allow
    Allow from all
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

httpd.conf同样,我的主文件FollowSymLinks启用了/以下选项:

<Directory />
  Options FollowSymLinks
  AllowOverride None
  Order deny,allow
  Deny from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

知道我可以做些什么来阻止Apache理解符号链接,或者更好的是,我能做些什么来让它回到正轨?

谢谢.

更新:

我应该补充一点,"堆栈"中的所有目录都可以由所有用户执行,这是OS X Lion上的本机Apache安装.

apache symlink

2
推荐指数
1
解决办法
3929
查看次数

猪的流通过PHP

我有一个Pig脚本 - 当前以本地模式运行 - 处理包含类别列表的大文件:

/root/level1/level2/level3
/root/level1/level2/level3/level4
...
Run Code Online (Sandbox Code Playgroud)

我需要通过调用存储过程将每个插入到现有数据库中.因为我是Pig的新手并且UDF界面有点令人生畏,我试图通过PHP脚本流式传输文件的内容来完成某些事情.

我发现PHP脚本只能看到我通过它的一半类别行.更准确地说,我看到了一个记录ceil( pig_categories/2 ).在通过PHP脚本流式传输后,限制为15将产生8个条目 - 最后一个将为空.

-- Pig script snippet
ordered  = ORDER mappable_categories BY category;
limited  = LIMIT ordered 20;

categories = FOREACH limited GENERATE category;
DUMP categories; -- Displays all 20 categories

streamed = STREAM limited THROUGH `php -nF categorize.php`;
DUMP streamed; -- Displays 10 categories

# categorize.php
$category = fgets( STDIN );
echo $category;
Run Code Online (Sandbox Code Playgroud)

对我所缺少的任何想法.我现在已经倾倒了猪参考手册一段时间,似乎没有太多关于通过PHP脚本流式传输的信息.我也试过IRC上的#hadoop频道无济于事.任何指导都将非常感谢.

谢谢.

UPDATE

很明显,这与EOL有关.如果我将PHP脚本从使用更改fgets()为stream_get_line(),那么我将返回10个项目,但应该首先跳过该记录,并且会显示一条尾随的空记录.

(Arts/Animation)
(Arts/Animation/Anime)
(Arts/Animation/Anime/Characters)
(Arts/Animation/Anime/Clubs_and_Organizations)
(Arts/Animation/Anime/Collectibles) …
Run Code Online (Sandbox Code Playgroud)

php hadoop apache-pig

1
推荐指数
1
解决办法
960
查看次数

jQueryUI自动完成功能并不真正自动完成

我正在使用jQueryUI自动完成功能与自定义数据和显示,但只是成功地让它部分工作.实际的保存功能很好,但我似乎无法正确使用UX.

如果我单击一个空框,则会显示自动完成下拉列表,并填充每个选项.但是,如果我开始输入,则下拉列表不会被过滤,它会完全消失.在这种情况下,选项列表非常小,我们正在使用这种技术来减少拼写错误创建新记录的可能性.例如,一个下拉列表包括2个选项:Potomac Electric Power Co.和Virginia Electric&Power Co.几乎不需要进行大规模过滤,但我希望如果有人开始输入"Poto"甚至"poto",列表会从2到1选项过滤.

这不会发生在我身上.我必须遗漏一些东西,因为他们的例子完全像我期望的那样,但也许我只是超越了看到它的点.

      $provider_name.autocomplete({
        source: data.Utilities,
        minLength: 0,
        focus: function( event, ui ) {
          $provider_name.val( ui.item.Utility.name );
          return false;
        },
        select: function( event, ui ) {
          $provider_name.val( ui.item.Utility.name );
          $provider_id.val( ui.item.Utility.id );
          return false;
        }
      }).data( 'autocomplete' )._renderItem = function( ul, item ) {
        return $( "<li></li>" )
          .data( "item.autocomplete", item )
          .append( '<a>' + item.Utility.name + '</a>' )
          .appendTo( ul );
      };
Run Code Online (Sandbox Code Playgroud)

任何输入都将非常感激.谢谢.

jquery-ui autocomplete

1
推荐指数
1
解决办法
835
查看次数

带Nightwatch.js集成测试的Selenium缓存问题

我在Selenium网络驱动程序(v2.41.0)之上使用Nightwatch.js(v0.5.6)构建了一个小型但不断增长的集成测试套件(希望如此)。我总是会偶尔遇到Element not found in the cache错误,但是我正在处理一个大型的验证测试用例-一个文件,其中包含2打以上的单独测试以及setUp()。我还不能完成运行此测试,这是一个问题。

There was an error while executing the Selenium command - enabling the --verbose option might offer more details.
Element not found in the cache - perhaps the page has changed since it was looked up
Run Code Online (Sandbox Code Playgroud)

该错误似乎总是在我的setUp()函数结束时发生,但是我找不到能阻止这种缓存发生的答案。这是我的setUp()功能:

setUp: function(browser) {
  console.log('Logging in & navigating to Eligibility Groups...');
  login(browser, app.masterAdminUsername, app.masterAdminPassword)
    // Navigate to Eligibility Groups
    .waitForElementVisible('button[data-action="EligibilityGroups"]', 1000, function() {
      browser
        .click('button[data-action="EligibilityGroups"]', function() {
          console.log('Link clicked. …
Run Code Online (Sandbox Code Playgroud)

selenium-webdriver nightwatch.js

1
推荐指数
1
解决办法
1754
查看次数