簡體   English   中英

抓住總是被叫

[英]catch always get called

由於總是調用catch異常,因此在將數據保存到數據庫時遇到了問題。 嘗試總是被忽略。 我真的不知道發生了什么。 我已經為此工作了幾個小時,卻無法正常工作。 我正在使用kohana 3.3和kostache。

這是控制器。

調節器

APPATH /類/控制器/album.php

public function action_create()
    {
                $view = Kostache_Layout::factory();
                $layout = new View_Pages_Album_List();
                $album = ORM::factory('Album_Information');
                $album_name = $this->request->post('inputAlbum');           
                $artist = $this->request->post('inputArtist');  
                $album->Album_Name = $album_name;
                $album->Artist = $artist;

                try
                {
                    $album->save();
                    HTTP::redirect('album');
                }
                catch(ORM_Validation_Exception $e)
                {
                    $layout->errors = $e->errors('models');
                }
            }   

        $this->response->body($view->render($layout));
    }

模板

APPATH /模板/頁面/專輯/列表。小胡子

<h3>Add A New Album</h3>
<form action="album/create" method="post">

<label for="inputAlbum">Album Name:</label>
<input id="inputAlbum" type="text" name="inputAlbum" /><br />
<label for"inputAlbum" class="error">{{#errors}}{{inputAlbum}}{{/errors}}</label>

<label for="inputArtist">Album Artist:</label>
<input id="inputArtist" type="text" name="inputArtist" /><br />
<label for="inputArtist" class="error">{{#errors}}{{inputArtist}}{{/errors}}</label>

<input type="submit" name="submit" value="Add" />
</form>

示范規則

APPATH / classes / model / album / information.php

class Model_Album_Information extends ORM
{
    protected $_primary_key = 'ID';
    protected $_table_name = 'album_information';

    public function rules()
    {
        return array(
                'inputAlbum' => array(
                    array('not_empty'),
                    ),
                'inputArtist' => array(
                    array('not_empty'),
                    ),
        );
    }

留言內容

APPATH /消息/模型/album.php

return array(
        'inputAlbum' => array(
            'not_empty' =>  ':You must provide Album Name',     
            ),
        'inputArtist' => array(
            'not_empty' => ':You must provide Album Artist',
        ),
    );

當我按下“提交”按鈕時,在輸入字段上沒有輸入時,就會顯示錯誤,這沒有問題,但是即使有輸入,錯誤仍然會顯示出來。 所以總是被追趕。 當我刪除try and catch時,我可以輕松地將數據保存到數據庫中,但是沒有驗證。

謝謝您,還有更大的力量。

您希望ORM類神奇地知道$album->Album_Name的值來自於名為inputAlbum的HTTP表單輸入。 不會的

為ORM對象本身的Album_NameArtist屬性創建規則。 沒有可能的輸入法。

控制器知道要傳遞給模型的數據。 該模型僅與接收到的數據有關。 不是它來自哪里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM