0

ニュースを削除する方法が見つかりません。404 (見つかりません) エラーが返されます。

私のモデル(News.php):

    <?php

class News extends Eloquent {

    protected $table = 'aac_news';

    protected $fillable = array('author', 'title', 'content');
    public $timestamps = true;
}

私のコントローラー:

        <?php

    class AdminController extends BaseController {



    /**
     * News Repository
     *
     * @var News
     */
    protected $news;

    public function __construct(News $news)
    {
        $this->news = $news;
    }

/** ------------------------------------------
 *  News Functions
 *  ------------------------------------------
 */

    public function get_news()
    {

      return View::make('admin.news_managment')->with('newss', $this->news->all());
    }

    public function create_news()
    {

      return View::make('admin.create_news');
  }

  public function post_create_news()
  {
    $input = Input::all();

    $rules = array(
        'author' => 'required|min:4|max:255',
        'title' => 'required|unique:aac_news,title|min:4|max:255',
        'content' => 'required|unique:aac_news,content|min:10'
        );

    $validation = Validator::make($input, $rules);

    if ($validation->fails()) {

       return Redirect::back()->withErrors($validation);

   } else {

    News::create($input);
    return Redirect::to('news/index');
}
}

public function news_delete($newsId)
{
 $news = $this->news->findOrFail($newsId);
 $news->delete();
 return Redirect::back()->with('success', 'Your news post has been deleted.');
}
}

そして私のルート:

    # News Management
Route::get('admin/dash/news', 'AdminController@get_news');
Route::get('admin/dash/news/add', 'AdminController@create_news');
Route::post('admin/dash/news/add', 'AdminController@post_create_news');
Route::get('admin/dash/news/{id}/delete/', 'AdminController@news_delete');

カスタム エラー 404 ページが返されるだけです。コンソール (laravel の PHP) にエラーはありません。アカウントを削除する同じ機能があり、機能します。

4

1 に答える 1

2

Newsクラスを使用してアイテムを見つけようとしましたか?

public function news_delete($newsId)
{
    $news = News::find($newsId);
    $news->delete();
    return Redirect::back()->with('success', 'Your news post has been deleted.');
}

ただし、ユーザーにそう伝える前に、削除されたことを確認する必要があります。メソッドは影響を受けた行の数を返すので、戻ってきたときdelete()よりも多いかどうかを確認する必要があります0

于 2013-08-05T03:42:07.273 に答える