2011-08-06 5 views
0

私はJobeetでSymfony 1.4を学びます。私はJobeetとシステムログインをユーザ用に作った。今私は自分のアフィリエイトを編集する可能性を追加したいと思います。現在のユーザーのためのaction.class

public function executeIndex(sfWebRequest $request) 
    { 
    $this->jobeet_job_list = Doctrine::getTable('JobeetJob') 
     ->createQuery('a') 
     ->where('id = ?', $id) //$id i have in session, this working OK 
     ->execute(); 
    } 

がどのように私はexecuteEditと同様に行うことができます。ここで、actions.class executeIndexとで

<?php 

class jobActions extends sfActions 
{ 
    public function executeIndex(sfWebRequest $request) 
    { 
    $this->jobeet_job_list = Doctrine::getTable('JobeetJob') 
     ->createQuery('a') 
     ->execute(); 
    } 

    public function executeShow(sfWebRequest $request) 
    { 
    $this->jobeet_job = Doctrine::getTable('JobeetJob')->find($request->getParameter('id')); 
    $this->forward404Unless($this->jobeet_job); 
    } 

    public function executeNew(sfWebRequest $request) 
    { 
    $this->form = new JobeetJobForm(); 
    } 

    public function executeCreate(sfWebRequest $request) 
    { 
    $this->forward404Unless($request->isMethod('post')); 

    $this->form = new JobeetJobForm(); 

    $this->processForm($request, $this->form); 

    $this->setTemplate('new'); 
    } 

    public function executeEdit(sfWebRequest $request) 
    { 
    $this->forward404Unless($jobeet_job = Doctrine::getTable('JobeetJob')->find($request->getParameter('id')), sprintf('Object jobeet_job does not exist (%s).', $request->getParameter('id'))); 
    $this->form = new JobeetJobForm($jobeet_job); 
    } 

    public function executeUpdate(sfWebRequest $request) 
    { 
    $this->forward404Unless($request->isMethod('post') || $request->isMethod('put')); 
    $this->forward404Unless($jobeet_job = Doctrine::getTable('JobeetJob')->find($request->getParameter('id')), sprintf('Object jobeet_job does not exist (%s).', $request->getParameter('id'))); 
    $this->form = new JobeetJobForm($jobeet_job); 

    $this->processForm($request, $this->form); 

    $this->setTemplate('edit'); 
    } 

    public function executeDelete(sfWebRequest $request) 
    { 
    $request->checkCSRFProtection(); 

    $this->forward404Unless($jobeet_job = Doctrine::getTable('JobeetJob')->find($request->getParameter('id')), sprintf('Object jobeet_job does not exist (%s).', $request->getParameter('id'))); 
    $jobeet_job->delete(); 

    $this->redirect('job/index'); 
    } 

    protected function processForm(sfWebRequest $request, sfForm $form) 
    { 
    $form->bind($request->getParameter($form->getName())); 
    if ($form->isValid()) 
    { 
     $jobeet_job = $form->save(); 

     $this->redirect('job/edit?id='.$jobeet_job['id']); 
    } 
    } 
} 

私は追加することができますか?データベースにはフィールドuser_idがあり、ニュースが追加されました。編集したいのはこのニュースだけです。手伝ってくれてありがとう!

+0

各ユーザがニュースを追加できるモジュールがありますか?フロントエンドまたはバックエンドにニュースを追加できますか? – denys281

答えて

0

編集したいジョブを編集する場合は、編集したいジョブを見つけてオブジェクトで初期化されたフォームを作成する必要があります。ような何か(私はビットをチェックし、すべてのパラメータをスキップしていますが、明らかにあなたは、idが要求していることを確認する必要があり、ユーザーがログに記録され、検索されたジョブが存在し、ユーザーによって所有されている):

$user_id = $this->getUser()->getId(); // if you are logged and getId is defined in your myUser class 

$job_id = $request->getParameter('id', false); 

$job = Doctrine::getTable('JobeetJob')->find($job_id); 

if ($job['owner_id'] == $user_id) 
{ 
    $this->form = new JobeetJobForm($job); 
} 
関連する問題