2015-10-22 2 views
0

Я строю проект, где пользователи KAN загружать проекты и другие пользователи могут комментировать eachothers ПроектыLaravel 5,1 ErrorException в CommentController.php строке 43: Undefined индекс: тело

Теперь я был в состоянии загрузить проекты и построить комментирования но теперь я больше не могу загружать проекты. Я могу только прокомментировать проекты, которые уже были сохранены в моем db.

Кто-то знает, почему я больше не могу хранить проекты?

Мои маршруты:

// add comment 
Route::post('projects/{id}','[email protected]'); 
//Project routes REST methode 
Route::post('projects/store', '[email protected]'); 
Route::resource('projects', 'ProjectsController'); 

Мой ProjectsController:

public function index() 
{ 
    $projects = Project::all(); 
    //return $projects; 
    return view('projects.index', compact('projects')); 
} 

public function create() 
{ 
    return view('projects.create'); 
} 

public function store(Request $request) 
{ 

    // getting all of the post data 
     $file = array('image' => Input::file('image')); 
     // setting up rules 
     $rules = array('image' => 'required',); //mimes:jpeg,bmp,png and for max size max:10000 
     // doing the validation, passing post data, rules and the messages 
     $validator = Validator::make($file, $rules); 
     if ($validator->fails()) 
     { 
     // send back to the page with the input data and errors 
     return Redirect::to('projects/create')->withInput()->withErrors($validator); 
     } 
     else 
     { 
     // checking file is valid. 
     if (Input::file('image')->isValid()) 
     { 
      $destinationPath = 'uploads/projects'; // upload path 
      $extension = Input::file('image')->getClientOriginalExtension(); // getting image extension 
      $fileName = rand(11111,99999).'.'.$extension; // renameing image 
      Input::file('image')->move($destinationPath, $fileName); // uploading file to given path 
      // sending back with message 
      Session::flash('success', 'Upload successfully'); 
     } 
     else 
     { 
      // sending back with error message. 
      Session::flash('error', 'uploaded file is not valid'); 
      return Redirect::to('projects/create'); 
     } 
     } 

     $input = Request::all(); 
     $project = new Project; 
     $project->user_id = Auth::id(); 
     $project->title = $input['title']; 
     //$project->tags = $input['tags']; 
     $project->summary = $input['summary']; 
     $project->file_name = $fileName; 
     $project->published_at = Carbon::now(); 
     $project->save(); 
     return Redirect::to('projects'); 

} 

public function show($id) 
{ 
    $input = Request::all(); 
    $project = Project::all()->load("User"); 
    //$project_comments = Comment::where('on_projects', '=', $id)->join('users', 'users.id', '=', 'comments.from_user')->get(); 

    $project_comments = DB::table('comments') 
     ->select('body', 'name') 
     ->where('on_projects', '=', $id) 
     ->join('users', 'users.id', '=', 'comments.from_user') 
     ->get(); 

    return view('projects.show', ['project' => Project::findOrFail($id), 'comments' => $project_comments]); 

} 

Мои CommentController

public function store() 
{ 
    $input = Request::all(); 
    $comment = new Comment; 
    $comment->body = $input['body']; 
    $comment->on_projects = $input['project_id']; 
    $comment->from_user = Auth::user()->id; 
    $comment->save(); 
    return redirect('projects/'.$input['project_id']); 

} 

Моя модель проекта

class Project extends Model 
{ 
protected $fillable = [ 
'user_id', 
'title', 
//'tags', 
'summary', 
'file_name', 
'published_at' 
]; 
public function User() 
{ 
    return $this->belongsTo('App\User'); 
} 

/** 
* Haal de tags op die gerelateerd zijn aan desbetreffende project 
*/ 

public function tags() 
{ 
    return $this->belongsToMany('App\Tag')->withTimestamps(); 
} 
} 

Мой комментарий модель:

class Comment extends Model 
{ 
//comments table in database 
protected $guarded = []; 

protected $table = 'comments'; 

public function user() 
{ 
    return $this->belongsTo('App\User'); 
} 

// returns post of any comment 
public function post() 
{ 
    return $this->belongsTo('App\Project','project_id'); 
} 


public $timestamps = false; 
} 
+0

Проблема заключается в том, что $ вход [ «тело»] не существует .. Проверьте вид если на входе есть это название тела или другого. – Svetoslav

+0

Спасибо, что вы прокомментировали, но эта проблема решена! –

ответ

3

Я установил его перестановке мои маршруты как этот

//Project routes REST methode 
Route::post('projects/store', '[email protected]'); 
Route::resource('projects', 'ProjectsController'); 
// add comment 
Route::post('projects/{id}','[email protected]'); 
Смежные вопросы