【问题标题】:laravel . How can I judge the results of ORM拉拉维尔。如何判断ORM的结果
【发布时间】:2016-09-19 22:46:40
【问题描述】:

示例:

$example = new Model();
$example->name = 'abc';
$example->save();

如何判断ORM的结果? 像这样?

if($example->save){
    ...//do someting
}else{
    ...//do someting
}

但是,我认为是错误的。因为,$example->save() 会返回一个对象。所以,else{} 不能永远运行。如何判断 ORM 的结果?

谢谢大家。

【问题讨论】:

  • 我一定是新手什么的。但是,什么是juage
  • 感谢您指出这一点! vvv 哦 k
  • @CamW 对不起,这是法官
  • 您是在检查模型是否保存或有错误?如果是,那么您可以将此块放在 try-catch 块中。
  • @SoulKeep save() 返回一个布尔值。您可以在source code 中亲自查看。为什么你认为它返回一个对象?

标签: php laravel


【解决方案1】:

您可以使用返回truefalseinsert() 方法:

$inserted = Model::insert(['name' => 'abc']);
    ...//do someting
if($inserted){

}else{
    ...//do someting else
}

或者,您可以使用try... catch 子句:

    try
    {
        Model::insert(['name' => 'abc']);

        ...//do someting
    }
    catch(\Exception $e)
    {
        ...//do someting else
    }

您可以尝试这样做:

$example = new Model();
$example->name = 'abc';
$example->save();
if ($example) { ... }

但这并不安全,因为你可能会在这部分得到错误并且你将无法捕捉到它:

$example->name = 'abc';

【讨论】:

    【解决方案2】:

    save() 将返回一个 boolean。所以你可以这样做:

    $saved = $example->save();

    if(!$saved){
        // something
    }
    

    或者直接保存在if:

    if(!$example->save()){
        // something
    }
    

    【讨论】:

      猜你喜欢
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      相关资源
      最近更新 更多