小编Sla*_*a V的帖子

Laravel 4 SQL日志/控制台

Laravel中是否有类似的东西可以让你看到正在执行的实际SQL?例如,在Rails中,您可以在控制台中看到SQL.在Django你有一个工具栏.

在Laravel 4中有类似的东西吗?

澄清一下:我的问题是如何在没有代码的情况下做到这一点.是否有内置在Laravel中的东西不需要我在应用程序中编写代码?

更新:我希望看到CLI查询(例如php artisan migrate)

laravel laravel-4

13
推荐指数
4
解决办法
1万
查看次数

Laravel 4模型验证与控制器验证

这似乎是在Laravel 4验证模型的官方途径是通过ValidatorController?有人能指出为什么会这样吗?

实施验证不是更有意义Model吗?

laravel laravel-4

12
推荐指数
2
解决办法
8847
查看次数

如何通过登录找到userid(Python下*NIX)

我需要将我的进程设置为在'nobody'下运行,我找到了os.setuid(),但是我怎么找到uid我的login

我发现uid在/ etc/passwd中,但也​​许比扫描/ etc/passwd有更多的pythonic方式.任何人?

python unix linux process-management

11
推荐指数
2
解决办法
4136
查看次数

python dict.add_by_value(dict_2)?

问题:

>>> a = dict(a=1,b=2    )
>>> b = dict(    b=3,c=2)

>>> c = ???

c = {'a': 1, 'b': 5, 'c': 2}
Run Code Online (Sandbox Code Playgroud)

所以,这个想法是两个以最短的形式通过int/float值添加到字典.这是我设计的一个解决方案,但我不喜欢它,因为它很长:

c = dict([(i,a.get(i,0) + b.get(i,0)) for i in set(a.keys()+b.keys())])
Run Code Online (Sandbox Code Playgroud)

我认为必须有一个更短/更简洁的解决方案(可能与reduce和操作员模块有关吗?itertools?)...任何想法?


更新:我真的希望找到更优雅的东西,比如"reduce(operator.add,key = itemgetter(0),a + b)".(显然这不是真正的代码,但你应该得到这个想法).但似乎这可能是一个梦想.


更新:仍然需要更简洁的解决方案.也许groupby可以帮忙吗?我用"reduce"/"groupby"提出的解决方案实际上并不简洁:

from itertools import groupby
from operator import itemgetter,add

c = dict( [(i,reduce(add,map(itemgetter(1), v))) \
              for i,v in groupby(sorted(a.items()+b.items()), itemgetter(0))] )
Run Code Online (Sandbox Code Playgroud)

python dictionary code-golf

9
推荐指数
5
解决办法
2053
查看次数

用户定义的C++转换为字符串(如Python中的__repr__)

如何__repr__在Python中创建类似用户定义的内容?

比方说,我有一个object1SomeClass,比方说我有一个函数void function1(std::string).有没有办法定义一些东西(函数,方法,...)来使编译器转换类SomeClass来std::string调用function1(object1)

(我知道我可以使用stringstream缓冲区和operator <<,但我想找到一种没有中间操作的方法)

c++ casting

8
推荐指数
2
解决办法
3526
查看次数

在Python中使用MixIns的优雅方法是什么?

我需要找到一种优雅的方式来做两种MixIns.

第一:

class A(object):
    def method1(self):
        do_something()
Run Code Online (Sandbox Code Playgroud)

现在,MixInClass应该method1这样做:do_other()- > A.method1()- > do_smth_else()- 即基本上"包装"旧功能.我很确定必须有一个很好的解决方案.

第二:

class B(object):
    def method1(self):
        do_something()
        do_more()
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望MixInClass2能够在do_something()和之间注入do_more(),即:do_something()- > MixIn.method1- > do_more().我明白这可能需要修改class B- 没关系,只是寻找最简单的方法来实现这一点.

这些都是非常微不足道的问题,我实际上解决了它们,但我的解决方案被污染了.

Fisrt one通过使用self._old_method1 = self.method1(); self.method1() = self._new_method1();和写入_new_method1()调用_old_method1().

问题:多个MixIns都将重命名为_old_method1并且它不够优雅.

第二个MixIn通过创建一个虚拟方法call_mixin(self): pass并在调用和定义之间注入它来解决self.call_mixin().再次不优雅,将打破多个MixIns ..

有任何想法吗?


感谢Boldewyn,我找到了第一个优雅的解决方案(我忘了你可以在运行中创建装饰器,而无需修改原始代码):

class MixIn_for_1(object):
    def __init__(self):
        self.method1 = self.wrap1(self.method1)
        super(MixIn_for_1, self).__init__() …
Run Code Online (Sandbox Code Playgroud)

python mixins

7
推荐指数
2
解决办法
4820
查看次数

Python 2.x中的super()没有args

试图转换super(B, self).method()成一个简单的好bubble()电话. 做到了,见下文!

在这个例子中是否可以引用B类?

class A(object): pass

class B(A):
    def test(self):
        test2()

class C(B): pass

import inspect
def test2():
    frame = inspect.currentframe().f_back
    cls = frame.[?something here?]
    # cls here should == B (class)

c = C()
c.test()
Run Code Online (Sandbox Code Playgroud)

基本上,C是孩子B,B是孩子A.然后我们创建c类型C.然后调用c.test()实际调用B.test()(通过继承),调用test2().

test2()可以得到父框架frame; 代码引用方法via frame.f_code; self通过frame.f_locals['self']; 但type(frame.f_locals['self'])C(当然),但不B …

python

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

如何在PHP中检查该字符串是否只有UTF8中的国际字母和空格?

在Python中,我可以将它转换为Unicode并执行'(?u)^ [\ w] + $'正则表达式搜索,但PHP似乎不了解国际\ w,或者它是什么?

php utf-8 utf

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

C++绑定方法队列(任务管理器/调度程序?)

是否有方法/模式/库来执行类似的操作(在伪代码中):

task_queue.push_back(ObjectType object1, method1);
task_queue.push_back(OtherObjectType object2, method2);
Run Code Online (Sandbox Code Playgroud)

这样我就可以做一些这样的:

for(int i=0; i<task_queue.size(); i++) {
    task_queue[i].object -> method();
}
Run Code Online (Sandbox Code Playgroud)

所以它会打电话:

obj1.method1();
obj2.method2();
Run Code Online (Sandbox Code Playgroud)

或者这是一个不可能的梦想?

如果有办法添加一些参数来调用 - 这将是最好的.

Doug T.请看这个优秀的答案!

Dave Van den Eynde的版本也很好用.

c++ queue task

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

其他 goroutine 中的恐慌未停止子进程

我需要运行一个长时间运行的子进程,如果我(出于任何原因)退出父应用程序,则将其终止。

这是代码:

cmd := exec.Command("./long-process")

defer cmd.Process.Kill()

if err != nil {
    log.Fatal(err)
}

var fail io.ReadCloser
fail.Close()
Run Code Online (Sandbox Code Playgroud)

这里fail产生明显的

panic: runtime error: invalid memory address or nil pointer dereference
Run Code Online (Sandbox Code Playgroud)

它按预期工作 - 子进程被终止。

但这发生在 goroutine 中:

cmd := exec.Command("./long-process")

defer cmd.Process.Kill()

if err != nil {
    log.Fatal(err)
}

go func() {
    var fail io.ReadCloser
    fail.Close()
}()
Run Code Online (Sandbox Code Playgroud)

恐慌仍然发生,但似乎defer没有被调用,子进程也没有被杀死。

有办法解决这个问题吗?

更新我需要一个跨平台解决方案(至少对于 Linux 和 FreeBSD)

最小的例子:

infinite-loop.sh

#!/bin/bash

while true; do
  sleep 1
done
Run Code Online (Sandbox Code Playgroud)

别忘了

chmod +x infinite-loop.sh
Run Code Online (Sandbox Code Playgroud)

test1.go …

go

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

标签 统计

python ×4

c++ ×2

laravel ×2

laravel-4 ×2

casting ×1

code-golf ×1

dictionary ×1

go ×1

linux ×1

mixins ×1

php ×1

process-management ×1

queue ×1

task ×1

unix ×1

utf ×1

utf-8 ×1