-2

このようなURLに複数のパラメーターを渡そうとしています...

http://somedomain.com/lessons/lessondetails/5/3

...次のようなコントローラーの関数に...

class LessonsController extends Controller

{
public function lessonDetails($studentId, $editRow=NULL)
{
    try {
        $studentData = new StudentsModel();
        $student = $studentData->getStudentById((int)$studentId);
        $lessons = $studentData->getLessonsByStudentId((int)$studentId);

        if ($lessons)
        {
            $this->_view->set('lessons', $lessons);

        } 
        else
        {
            $this->_view->set('noLessons', 'There are no lessons currently scheduled.');
        }
        $this->_view->set('title', $student['first_name']);
        $this->_view->set('student', $student);

        return $this->_view->output();

    } catch (Exception $e) {
        echo "Application error: " . $e->getMessage();
    }
}
}

ただし、最初のパラメーターのみが正常に渡されるようです。ここに何をコピーして貼り付ければよいかわかりませんが、ここに bootstrap.php があります...

$controller = "students";
$action = "index";
$query = null;

if (isset($_GET['load']))
{
    $params = array();
    $params = explode("/", $_GET['load']);

    $controller = ucwords($params[0]);

    if (isset($params[1]) && !empty($params[1]))
    {
            $action = $params[1];
    }

    if (isset($params[2]) && !empty($params[2]))
    {
            $query = $params[2];
    }
}

$modelName = $controller;
$controller .= 'Controller';
$load = new $controller($modelName, $action);

if (method_exists($load, $action))
{
    $load->{$action}($query);
}
else
{
    die('Invalid method. Please check the URL.');
}

前もって感謝します!

4

1 に答える 1

-1

$this->getRequest()->getParams()アクション コントローラーから呼び出して、両方のパラメーターが存在するかどうかを確認します。

NO の場合、問題はルーティングにあります。

YES の場合、問題はパラメーターをコントローラー メソッドに渡すことにありますlessonDetails

また、lessondetailsAction欠品です。(投稿したURLにアクセスすると呼び出されるメソッドになります)

于 2013-04-15T16:03:38.923 に答える