【问题标题】:Fuelphp orm if id not exsitstFuelphp orm 如果 id 不存在
【发布时间】:2012-11-03 15:33:21
【问题描述】:

我遇到了一个我无法真正解决的小问题。

我用 orm 为燃料 php 中的视频创建了一个删除函数,也许它有点愚蠢,但我真的不知道如果和 id 不存在如何重定向用户。

这是我的代码

public function action_delete($id)
    {

        $deletevideo = Model_Video::find($id);

        if($deletevideo->user_id != Session::get('sentry_user')):
            Session::set_flash('fail', 'The video you want to remove is not yours, we logged this activity');
            Response::redirect(Uri::base() . "myvideos");
        else:
            unlink(realpath("users/video/" . $deletevideo->video_preview));
            unlink(realpath("users/video/" . $deletevideo->video_file));
            $deletevideo->delete();
            Response::redirect(Uri::base() . "myvideos");
        endif;
    }

html

<a href="<?php echo Uri::base(); ?>video/delete/<?php echo $myvid->id; ?>" onclick = "if (! confirm('Are your sure you want to delete this video? <?php echo $myvid->video_title; ?>')) return false;" class="btn btn-danger">Delete</a>

我在一个论坛上看到人们谈论 DB::expr 来实现这一点,但可以找到任何关于它的例子。

有人可以给我一个提示吗?

【问题讨论】:

  • 我想你可以在初始化后立即检查$deletevideo;如果它为空(或者只是一个空数组;无论find 方法返回什么),重定向它,如果不是,继续检查用户身份。
  • 现在我觉得自己很愚蠢,我不知道为什么我没有想到这一点

标签: php orm fuelphp


【解决方案1】:

这里有一些代码可以帮助你:

$video = Model_Video::find($id);

if ( ! $video instanceof Model_Video)
{
    Session::set_flash('fail', 'The video ID is not valid!');
    Response::redirect('go/somewhere/else');
}

在使用结果之前,您应该始终检查结果是否确实是有效的 Model_Video。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多