2

モデルからコントローラーに成功または失敗のメッセージを返すのに最適なメッセージは何ですか? データを返すことができるので、成功メッセージは簡単です。ただし、失敗の場合、失敗のコールバック結果ではなく、FALSE のみを渡すことができます。

最良の方法は何ですか?

方法1は次のとおりです。

モデルは次のとおりです。

function get_pkg_length_by_id($data) {
    $this->db->where('id', $data['pkg_length_id']);
    $result = $this->db->get('pkg_lengths');
    if($result->num_rows() > 0 ) {
        return $result->row();
    }
    else {
        return false;
    }
}

コントローラーで、私はやります

function show() {
    if(get_pkg_length_by_id($data) { 
        //pass success message to view
    }
    else {
        //Pass failure message to view
    }

バージョン 2 は次のとおりです。

モデル内

function get_pkg_length_by_id($data) {
    $this->db->where('id', $data['pkg_length_id']);
    $result = $this->db->get('pkg_lengths');
    if($result->num_rows() > 0 ) {
        $result['status'] = array(
            'status' => '1',
            'status_msg' => 'Record found'
        );
        return $result->row();
    }
    else {
        $result['status'] = array(
            'status' => '0',
            'status_msg' => 'cannot find any record.'
        );
        return $result->row();
    }
}

コントローラー内

function show() {
$result = get_pkg_length_by_id($data);
    if($result['status['status']] == 1) { 
        //pass $result['status'['status_msg']] to view
    }
    else {
        //pass $result['status'['status_msg']] to view
    }
4

2 に答える 2

2

モデルページでこれらの種類のものを実行することは、常に良い習慣です。

次のように、あなたが行ったことにいくつかの変更を加えました。

function get_pkg_length_by_id($data) 
{
    $this->db->where('id', $data['pkg_length_id']);
    $query = $this->db->get('pkg_lengths');
    /*
        Just changed var name from $result to $query
        since we have a $result var name as return var
    */
    if($result->num_rows() > 0 ) {
        $result = $query->row_array();
        /*
            $result holds the result array.
        */
        $result['status'] = array(
            'status' => '1',
            'status_msg' => 'Record found'
        );
        //return $result->row();
        /*
          This will return $result->row() only which 
          doesn't include your $result['status']
        */
    }
    else {
        $result['status'] = array(
            'status' => '0',
            'status_msg' => 'cannot find any record.'
        );
        //return $result->row();
        /*
        This is not required.
        Returning just status message is enough.
        */
    }
    return $result;
}
于 2013-04-29T07:05:12.533 に答える