拉拉维尔。如何判断ORM的结果

Posted

技术标签:

【中文标题】拉拉维尔。如何判断ORM的结果【英文标题】:laravel . How can I judge the results of 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 中亲自查看。为什么你认为它返回一个对象? 【参考方案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

【讨论】:

以上是关于拉拉维尔。如何判断ORM的结果的主要内容,如果未能解决你的问题,请参考以下文章

如何获得价值摘要 |拉拉维尔

拉拉维尔 5.6。如何测试 JSON/JSONb 列

如何限制数据透视表的访问?拉拉维尔

如何显示具有相同值的最后一行的总数? (拉拉维尔)

如何测试调用 API 的方法? (拉拉维尔)

如何签入 ::whereHas 查询某个列值?拉拉维尔