2016-12-21 19 views
5

Bu sorunu nasıl çözeceğimi anlayamıyorum. Bir img seçmezsem makale sayfamı oluşturmaya çalışırken null hatasıyla başarısız olur. Herhangi bir fikir sahibi olan var mı?Bir üye işlevine çağırın Move() null

Hata Hata ayıklama modu kullanılarak üretildi. Null'da bir üye işlevine move() çağırın. /home/UNIT3D/app/controllers/Admin/ArticleController.php

$post->image = null; 
    } 

    $v = Validator::make($post->toArray(), $post->rules); 
    if($v->fails()) 
    { 
     // Suppression de l'image car la validation a échoué 
     if(file_exists(Input::file('image')->move(getcwd() . '/files/img/' . $post->image)))  
     { 
      unlink(Input::file('image')->move(getcwd() . '/files/img/' . $post->image)); 

Tam Dosya Eğer bu dosyayı taşımak için denemeden önce bir dosya var olmadığını kontrol etmek zorunda

<?php 

    namespace Admin; 

    use \View; 
    use \Request; 
    use \Input; 
    use \Auth; 
    use \Redirect; 
    use \Validator; 
    use \Session; 

    use \Illuminate\Support\Str; 
    use \Article; 

    class ArticleController extends \BaseController { 

     /** 
     * Affiche la page d'administration des articles 
     * 
     * @access public 
     * @return post.admin_index_post 
     */ 
     public function index() 
     { 
      $posts = Article::orderBy('created_at', 'DESC')->paginate(20); 
      return View::make('Admin.article.index', array('posts' => $posts)); 
     } 

     /** 
     * Ajoute un article 
     * 
     * @access public 
     * @return post.admin_add_post 
     */ 
     public function add() 
     { 
      if(Request::isMethod('post')) 
      { 
       $input = Input::all(); 
       $post = new Article(); 
       $post->title = $input['title']; 
       $post->slug = Str::slug($post->title); 
       $post->content = $input['content']; 
       //$post->user_id = Auth::user()->id; 
       // Verifie qu'une image à était upload 
       if(Input::hasFile('image') && Input::file('image')->getError() == 0) 
       { 
        // Le fichier est bien une image 
        if(in_array(Input::file('image')->getClientOriginalExtension(), array('jpg', 'jpeg', 'bmp', 'png', 'tiff'))) 
        { 
         // Déplace et ajoute le nom à l'objet qui sera sauvegarder 
         $post->image = 'article-' . uniqid() . '.' . Input::file('image')->getClientOriginalExtension(); 
         Input::file('image')->move(getcwd() . '/files/img/', $post->image); 
        } 
        else 
        { 
         // Image null car invalide ou mauvais format 
         $post->image = null; 
        } 
       } 
       else 
       { 
        // Erreur sur l'image donc null 
        $post->image = null; 
       } 

       $v = Validator::make($post->toArray(), $post->rules); 
       if($v->fails()) 
       { 
        // Suppression de l'image car la validation a échoué 
        if(file_exists(Input::file('image')->move(getcwd() . '/files/img/' . $post->image)))  
        { 
         unlink(Input::file('image')->move(getcwd() . '/files/img/' . $post->image)); 
        } 
        Session::put('message', 'An error has occured'); 
       } 
       else 
       { 
        Auth::user()->articles()->save($post); 
        return Redirect::route('admin_article_index')->with('message', 'Your article has been published'); 
       } 
      } 
      return View::make('Admin.article.add'); 
     } 

     /** 
     * Edite l'article voulu 
     * 
     * @access public 
     * @param $slug Slug de l'article à édité 
     * @param $id Id de l'article 
     * @return post.admin_edit_post 
     */ 
     public function edit($slug, $id) 
     { 
      $post = Article::find($id); 
      if(Request::isMethod('post')) 
      { 
       $input = Input::all(); 
       $post->title = $input['title']; 
       $post->slug = Str::slug($post->title); 
       $post->content = $input['content']; 
       //$post->user_id = Auth::user()->id; 

       // Verifie qu'une image à était upload 
       if(Input::hasFile('image') && Input::file('image')->getError() == 0) 
       { 
        // Le fichier est bien une image 
        if(in_array(Input::file('image')->getClientOriginalExtension(), array('jpg', 'jpeg', 'bmp', 'png', 'tiff'))) 
        { 
         // Déplace et ajoute le nom à l'objet qui sera sauvegarder 
         $post->image = 'article-' . uniqid() . '.' . Input::file('image')->getClientOriginalExtension(); 
         Input::file('image')->move(getcwd() . '/files/img/', $post->image); 
        } 
        else 
        { 
         // Image null car invalide ou mauvais format 
         $post->image = null; 
        } 
       } 
       else 
       { 
        // Erreur sur l'image donc null 
        $post->image = null; 
       } 

       $v = Validator::make($post->toArray(), $post->rules); 
       if($v->fails()) 
       { 
        Session::put('message', 'An error has occured'); 
       } 
       else 
       { 
        $post->save(); 
        return Redirect::route('admin_article_index')->with('message', 'Your article has been modified'); 
       } 
      } 
      return View::make('Admin.article.edit', array('post' => $post)); 
     } 

     /** 
     * Supprime l'article désiré 
     * 
     * @access public 
     * @param $slug Slug de l'article 
     * @param $id Id de l'article 
     * @return void 
     */ 
     public function delete($slug, $id) 
     { 
      $post = Article::find($id); 
      $post->delete(); 
      return Redirect::route('admin_article_index')->with('message', 'This article has been deleted'); 
     } 
    } ?> 
+1

if ifadesini kesmelisiniz ... eğer dosya_exists içinde olup olmadığını kontrol edip içindeki mantığı yapın ve –

cevap

1

:

if (Input::file('image')) { 

    if(file_exists(Input::file('image')->move(getcwd() . '/files/img/' . $post- >image)))  
     { 
      unlink(Input::file('image')->move(getcwd() . '/files/img/' . $post- >image)); 
    .... 
} 
+0

boş göstergesinden arınmış olmalısınız. bu benim sorunumu çözdü –

İlgili konular