我有以下代码:
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中执行以下操作吗?
$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)
我很好奇是否有更好的方法来解决这个问题.
谢谢!
我在第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) 我想在包含行中使用Twig变量,但它不起作用:
{% include 'folder/{{ component }}.twig' %}
我收到错误:
Unable to find template "folder/{{ component }}.twig"
谁能帮我吗?
谢谢!
我想在执行同步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)
将其更改为异步调用可能会起作用,但目前将非常有用。有没有人有解决方案?谢谢!
我知道出生那天,让我们说: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)
谢谢!
我目前的代码如下:
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();.
谢谢!