小编pas*_*ert的帖子

Laravel从私有方法重定向出现错误

我有以下代码:

public function store(Request $request)
{
        $this->validateData($request->all());

        // store something

        return redirect()->action('controller@index')->withMessage( 'Saved Successfully' );
}

private function validateData($requestParams)
{
    try 
    {
        $validator->validate( $requestParams );
    } 
    catch ( ValidationException $e ) 
    {
        redirect()->action('controller@create')->withInput()->withErrors( $e->get_errors() )->send();
        exit(); // this causes the withErrors to not be there
    }
}
Run Code Online (Sandbox Code Playgroud)

如果删除exit();,将出现错误消息,但还会执行存储功能(请参阅参考资料// store something)。我知道我可以像这样重写我的代码:

if($this->validateData($request->all()))
{
    // store something

    return redirect()->action('controller@index')->withMessage( 'Saved Successfully' );
}
Run Code Online (Sandbox Code Playgroud)

但是我不想在if这里发表丑陋的说法。没有Flash消息,必须有一种重定向方法。

php redirect if-statement laravel laravel-5

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

我可以用变量调用方法吗?

我可以在PHP中执行以下操作吗?

$lstrClassName  = 'Class';
$lstrMethodName = 'function';
$laParameters   = array('foo' => 1, 'bar' => 2);

$this->$lstrClassName->$lstrMethodName($laParameters);
Run Code Online (Sandbox Code Playgroud)

我现在使用的解决方案是使用eval()调用函数,如下所示:

eval('$this->'.$lstrClassName.'->'.$lstrMethodName.'($laParameters);');
Run Code Online (Sandbox Code Playgroud)

我很好奇是否有更好的方法来解决这个问题.

谢谢!

php eval

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

MySQL存储函数中的IF语句出错

我在第12行收到错误(在endif语句中).我相信我在IF或ELSE中做错了什么,任何人都可以帮助我吗?

DELIMITER $$

CREATE FUNCTION TEST (`param` INT) 
RETURNS INT 
DETERMINISTIC
BEGIN
    DECLARE `var` INT;

    SET `var` = 1;

    IF `param` > 0 THEN
        SET `var` = `var` + `param`;
    END IF;

    RETURN `var`;
END$$
Run Code Online (Sandbox Code Playgroud)

编辑:(与案件相同的功能,而不是如果,相同的问题)

DELIMITER $$

CREATE FUNCTION TEST (`param` INT) 
RETURNS INT 
DETERMINISTIC
BEGIN
    DECLARE `var` INT;

    SET `var` = 1;

    SET `var` = 
        CASE
            WHEN `param` > 0 THEN `var` + `param` ELSE `var`
        END ;

    RETURN `var`;
END$$
Run Code Online (Sandbox Code Playgroud)

mysql sql stored-functions

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

在包含路径中使用Twig变量

我想在包含行中使用Twig变量,但它不起作用:
{% include 'folder/{{ component }}.twig' %}

我收到错误: Unable to find template "folder/{{ component }}.twig"

谁能帮我吗?

谢谢!

include twig

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

同步AJAX调用在Chrome中冻结之前的代码

我想在执行同步AJAX调用时将按钮更改为加载状态。除了将按钮更改为加载状态的jQuery代码(在Chrome中),冻结直到AJAX调用完成。因此,在de ajax调用之后,加载状态可能会显示1毫秒。

我在JSFiddle中创建了一个示例来进行检验。(在Chrome中入)
http://jsfiddle.net/b8w9hf01/

$('.button').on('click', function()
{
    // change button text (DOESN'T SHOW)
    $(this).html('Loading..').delay(10);

    // do async call
    $.ajax({
        url: 'http://echo.jsontest.com/insert-key-here/insert-value-here/key/value',
        async: false,
        dataType: "json",
        success: function(poResponse){
            console.log(poResponse);
        }
    });

    // change button text
    $('.button').html('Done');

    // put Click here back after a second, for repeation of the test
    setTimeout(function() { $('.button').html('Click here'); }, 1000);
});
Run Code Online (Sandbox Code Playgroud)

将其更改为异步调用可能会起作用,但目前将非常有用。有没有人有解决方案?谢谢!

javascript ajax jquery google-chrome

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

如何编写整洁的代码来获取上一个生日日期?

我知道出生那天,让我们说:1996-12-12
我知道今天是:2014-11-12

现在我想得到上一个生日的日期.我已经编写了这个解决方案,但我不喜欢代码的复杂性.如何为其他程序员编写更易读的内容?

$lstrBirthday       = '1996-12-12';
$lstrLastBirtday    = (strtotime(date('Y').date('-m-d', strtotime($lstrBirthday))) > strtotime('now')) ? (date('Y') - 1).date('-m-d', strtotime($lstrBirthday)) : date('Y').date('-m-d', strtotime($lstrBirthday));
Run Code Online (Sandbox Code Playgroud)

谢谢!

php date strtotime date-arithmetic

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

是否存在命名空间单例类的快捷方式

我目前的代码如下:

namespace Libraries;

class_alias('Libraries\ORM', 'ORM');

class ORM 
{
    public function __construct() {}

    static public function someMethod()
    {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为我可以快速命名空间,如上所示,所以我只需要调用ORM::someMethod();而不是\Libraries\ORM::someMethod();

(我在另一个命名空间中使用ORM类,让我们说"项目")

这是可能的还是什么是正确的解决方案?我知道我可以在类存储在一个全局命名空间,但我仍然需要使用全球斜线,如:\ORM::someMethod();.

谢谢!

php static-methods namespaces

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