2014-10-16 1 views
0

у меня есть этот код и когда я пытаюсь получить доступ к laravel.dev/cats/create появляется страница:Брус вставки в таблицу, используя Laravel

Whoops, looks like something went wrong. 

это мой route.php код (важные части):

Route::model('cat', 'Cat'); 

Route::get('cats/create', function() { 
    $cat = new Cat; 
    return View::make('cats.edit') 
     ->with('cat', $cat) 
     ->with('method', 'post'); 
}); 

Route::post('cats', function(){ 
    $cat = Cat::create(Input::all()); 
    return Redirect::to('cats/' . $cat->id) 
     ->with('message', 'Successfully created page!'); 
}); 
Route::get('cats/{id}', function($id) { 
    $cat = Cat::find($id); 
    return View::make('cats.single') 
     ->with('cat', $cat); 
}); 

и это мой кошки/код edit.blade.php:

@extends('master') 
@section('header') 
<a href="{{('cats/'.$cat->id.'')}}">&larr; Cancel </a> 
    <h2> 
    @if($method == 'post') 
     Add a new cat 
    @elseif($method == 'delete') 
     Delete {{$cat->name}}? 
    @else 
     Edit {{$cat->name}} 
    @endif 
</h2> 
@stop 

@section('content') 
    {{Form::model($cat, array('method' => $method, 'url'=> 
    'cats/'.$cat->id))}} 

@unless($method == 'delete') 
    <div class="form-group"> 
     {{Form::label('Name')}} 
     {{Form::text('name')}} 
    </div> 
    <div class="form-group"> 
     {{Form::label('Date of birth')}} 
     {{Form::text('date_of_birth')}} 
    </div> 
    <div class="form-group"> 
     {{Form::label('Breed')}} 
     {{Form::select('breed_id', $breed_options)}} 
    </div> 
    {{Form::submit("Save", array("class"=>"btn btn-default"))}} 
@else 
    {{Form::submit("Delete", array("class"=>"btn btn-default"))}} 
@endif 
    {{Form::close()}} 
@stop 

я не сейчас, когда проблема, у меня есть один и тот же код для редактирования d удалить, но эти парни работают правильно, но этот нет!

это ошибка, которая сообщает отладчик:

Trying to get property of non-object (View: D:\Xampp\htdocs\laravel\app\views\cats\single.blade.php) 

<?php echo e($cat->name); ?> 

ошибка отметить, что линия.

Спасибо за ваш помогает :))))

Edit: и это single.blade.php:

@extends('master') 
@section('header') 
<?php// dd($cat); ?> 
<a href="{{url('/')}}">Back to overview</a> 
<h2> 
    {{{$cat->name}}} 
</h2> 
<a href="{{url('cats/'.$cat->id.'/edit')}}"> 
    <span class="glyphicon glyphicon-edit"></span> Edit 
</a> 
<a href="{{url('cats/'.$cat->id.'/delete')}}"> 
    <span class="glyphicon glyphicon-trash"></span> Delete 
</a> 
Last edited: {{$cat->updated_at}} 
@stop 
@section('content') 
    <p>Date of Birth: {{$cat->date_of_birth}} </p> 
    <p> 
     @if($cat->breed) 
      Breed: 
      {{link_to('cats/breeds/' . $cat->breed->name, 
      $cat->breed->name)}} 
     @endif 
    </p> 
@stop 

я не знаю, почему, когда я был пойти на кошек/создать я перехожу к single.blade.php я думаю, что это то, где я буду неправ, но понятия не имеет, где в коде я делать

+1

Включите отладку в 'app/config/app.php', и вы получите полезное сообщение об ошибке – RMcLeod

+0

thank u bro, очень полезно – Arman

+0

Можете ли вы опубликовать всю ошибку? – Jerodev

ответ

0

проблема заключается в:

Route::get('cats/{id}', function($id) { 
    $cat = Cat::find($id); 
    return View::make('cats.single') 
     ->with('cat', $cat); 
}); 

Похоже, что нет записи, найденной с $id, поэтому $cat здесь null здесь, и это не сработает в Blade.

Вы должны проверить, что такое текущий url (что такое значение $ id) и убедиться, что в таблице есть запись с таким $ id в таблице).

+0

, так почему отладчик получает ошибку от single.blade.php? – Arman

+0

@Nabialek, когда я использую 'dd ($ cat)' в первом из single.blade.php, его возвращает только NULL, какую часть кода вы хотите показать u? – Arman

+0

@ArmanKuroKy Вы все еще не показали этот фрагмент кода, в котором вы используете 'View :: make ('cats.single.blade.php') ...' –