2016-03-31 14 views
1

(örneğin) /project/2 adresine gittiğimde bir görünüm döndürmeye çalışıyorum ama şu hatayı alıyorum:Hata: Tanımsız değişken: projeler (Görüntüle: ../resources/views/project.blade.php)

Undefined variable: projects (View: ../resources/views/project.blade.php)

Unutmayın ki geliştirme konusunda oldukça yeni ve Laravel. Laravel 5.2 kullanıyorum.

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Project; 
use App\Http\Controllers\Controller; 

class pagesController extends Controller { 
    public function index() { 
    $projects = \App\Project::orderBy('created_at', 'desc')->get(); 
    return view('index')->with('projects', $projects); 
    } 

    public function storeProject(Request $request) { 
    $project = new Project; 
    $project->name = $request->newProject; 
    $project->save(); 
    } 

    public function getProject($id) { 
    $project = \App\Project::findorfail($id); //findorfail 404 teruggeven wanneer id null is. 
    return view('project')->with('project', $project); 
    } 
} 

Benim formu::

<!-- Begin nieuw project formulier--> 
<div class="dropdown-container"> 
    <div class="text-center dropdownwrap"> 
    <form role="form" method="POST" action="/project/"> 
     <div class="form-group"> 
     <input name="newProject" type="text" class="form-control" id="newProjectField" placeholder="Voeg project toe..."/> 
     </div> 
     <div class="form-group text-center"> 
     <button type="submit" class="btn btn-primary"> 
      Bewaar 
     </button> 
     </div> 
    </form> 
    </div> 
    <a href="#" class="btn btn-default btn-block dropdownButton"><span class="glyphicon glyphicon-plus"></span></a> 
</div> 
<!-- Einde Nieuw project formulier--> 

Benim yolları:

Bu

benim denetleyicisi olduğu göre

<?php 

/* 
|-------------------------------------------------------------------------- 
| Routes File 
|-------------------------------------------------------------------------- 
| 
| Here is where you will register all of the routes in an application. 
| It's a breeze. Simply tell Laravel the URIs it should respond to 
| and give it the controller to call when that URI is requested. 
| 
*/ 

Route::get('/', '[email protected]'); 

Route::get('/test', function() { 
    return view('testPage'); 
} 
); 

Route::post('/', '[email protected]'); 

Route::post('/project', '[email protected]'); 
Route::get('/project/{id}', '[email protected]'); 

/* 
|-------------------------------------------------------------------------- 
| Application Routes 
|-------------------------------------------------------------------------- 
| 
| This route group applies the "web" middleware group to every route 
| it contains. The "web" middleware group is defined in your HTTP 
| kernel and includes session state, CSRF protection, and more. 
| 
*/ 

Route::group(['middleware' => ['web']], function() { 
    // 
}); 
+0

Lütfen gönderinizi 'project.blade.php' tam içeriğiyle güncelleyin. –

cevap

0

senin Rota URI project/2 aşağıdaki yöntemi tetikler: Bu durumda

public function getProject($id) 
{ 
    $project = \App\Project::findorfail($id); //findorfail 404 teruggeven wanneer id null is. 
    return view('project')->with('project', $project); 

} 

, bunu değişken $projects kullanılabilir olması, bunun yerine $project kullanmaz değil projectsproject kullandım. Daha açık olmak gerekirse, )->with('project', $project); yazdığınızda, ilk parametre with yönteminde ikinci parametrede geçen verilere erişmek için değişken ad olacaktır ve sizin durumunuzda with('project', $project) kullandınız. Bu şekilde çalışır:

return view('project')->with(
    'project', // <-- This will be available in the view as $project 
    $project // <-- This will be contained in the $project variable in the view 
); 
İlgili konular