2017-01-24 4 views
1

Я хочу сделать кнопку на моем основном индексе для перенаправления на другой вид.ОшибкаException свойство non-object laravel

index.blade.php:

@extends('layouts.default') 

@section('content') 

<div class="row"> 
    <div class="col-lg-12 margin-tb"> 
     <div class="pull-left"> 
      <h2>Meniu management locatari</h2> 
     </div> 
     <div class="pull-right"> 
      <a class="btn btn-success" href="{{ route('itemCRUD.create') }}"> Creaza intrare noua</a> 
     </div> 
     <div class="pull-right"> 
      <a class="btn btn-success" href="{{URL::to('itemCRUD/finalu') }}"> Insert excel</a> 
     </div> 
    </div> 
</div> 

@if ($message = Session::get('success')) 
    <div class="alert alert-success"> 
     <p>{{ $message }}</p> 
    </div> 
@endif 

<table class="table table-bordered"> 
    <tr> 
     <th>no</th> 
     <th>apartament</th> 
     <th>nume</th> 
     <th>persoane</th> 
     <th>mp</th> 
     <th>comentariu</th> 
     <th width="280px">Actiune</th> 
    </tr> 
@foreach ($items as $key => $item) 
<tr> 
    <td>{{ ++$i }}</td> 
    <td>{{ $item->apartament }}</td> 
    <td>{{ $item->nume }}</td> 
    <td>{{ $item->persoane }}</td> 
    <td>{{ $item->mp }}</td> 
    <td>{{ $item->comentariu }}</td> 
    <td> 
     <a class="btn btn-info" href="{{ route('itemCRUD.show',$item->id) }}">Arata</a> 
     <a class="btn btn-primary" href="{{ route('itemCRUD.edit',$item->id) }}">Edit</a> 
     {!! Form::open(['method' => 'DELETE','route' => ['itemCRUD.destroy', $item->id],'style'=>'display:inline']) !!} 
     {!! Form::submit('Sterge', ['class' => 'btn btn-danger']) !!} 
     {!! Form::close() !!} 
    </td> 
</tr> 
@endforeach 
</table> 

{!! $items->render() !!} 

@endsection

Но когда я нажимаю кнопкуInsert первенствовать перенаправить меня с этой точкой зрения

finalu.blade.php:

@extends('layouts.default') 

@section('content') 


<h1>Helooo</h1> 


@endsection 

Я получу эту ошибку Исключение:

ErrorException в bcebe4d151d0a3c5c8008307bf179799c7fba86b.php строке 20: Попытка получить свойство не-объекта (Вид: /var/www/html/admintmhelp/resources/views/ItemCRUD/show.blade.php)

Кроме того, это мой show.blade.php:

@extends('layouts.default') 

@section('content') 

<div class="row"> 
    <div class="col-lg-12 margin-tb"> 
     <div class="pull-left"> 
      <h2> Arata intrarea</h2> 
     </div> 
     <div class="pull-right"> 
      <a class="btn btn-primary" href="{{ route('itemCRUD.index') }}"> Inapoi</a> 
     </div> 
    </div> 
</div> 

<div class="row"> 

    <div class="col-xs-12 col-sm-12 col-md-12"> 
     <div class="form-group"> 
      <strong>apartament:</strong> 
      {{ $item->apartament }} 
     </div> 
    </div> 

    <div class="col-xs-12 col-sm-12 col-md-12"> 
     <div class="form-group"> 
      <strong>nume:</strong> 
      {{ $item->nume }} 
     </div> 
    </div> 

    <div class="col-xs-12 col-sm-12 col-md-12"> 
     <div class="form-group"> 
      <strong>persoane:</strong> 
      {{ $item->persoane }} 
     </div> 
    </div> 

    <div class="col-xs-12 col-sm-12 col-md-12"> 
     <div class="form-group"> 
      <strong>mp:</strong> 
      {{ $item->mp }} 
     </div> 
    </div> 

    <div class="col-xs-12 col-sm-12 col-md-12"> 
     <div class="form-group"> 
      <strong>comentariu:</strong> 
      {{ $item->comentariu }} 
     </div> 
    </div> 

</div> 

@endsection 

И это мой контроллер:

<?php 

namespace App\Http\Controllers; 

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

class ItemCRUDController extends Controller 
{ 

/** 
* Display a listing of the resource. 
* 
* @return \Illuminate\Http\Response 
*/ 
public function index(Request $request) 
{ 
    $items = Item::orderBy('id','DESC')->paginate(5); 
    return view('ItemCRUD.index',compact('items')) 
     ->with('i', ($request->input('page', 1) - 1) * 5); 
} 

/** 
* Show the form for creating a new resource. 
* 
* @return \Illuminate\Http\Response 
*/ 
public function create() 
{ 
    return view('ItemCRUD.create'); 
} 
public function finalu() 
{ 
    return view('ItemCRUD.finalu'); 
} 
/** 
* Store a newly created resource in storage. 
* 
* @param \Illuminate\Http\Request $request 
* @return \Illuminate\Http\Response 
*/ 
public function store(Request $request) 
{ 
    $this->validate($request, [ 
     'apartament' => 'required', 
     'nume' => 'required', 
     'persoane' => 'required', 
     'mp' => 'required', 
    ]); 

    Item::create($request->all()); 
    return redirect()->route('itemCRUD.index') 
        ->with('success','Intrare inserata cu succes'); 
} 

/** 
* Display the specified resource. 
* 
* @param int $id 
* @return \Illuminate\Http\Response 
*/ 
public function show($id) 
{ 
    $item = Item::find($id); 
    return view('ItemCRUD.show',compact('item')); 
} 

/** 
* Show the form for editing the specified resource. 
* 
* @param int $id 
* @return \Illuminate\Http\Response 
*/ 
public function edit($id) 
{ 
    $item = Item::find($id); 
    return view('ItemCRUD.edit',compact('item')); 
} 

/** 
* Update the specified resource in storage. 
* 
* @param \Illuminate\Http\Request $request 
* @param int $id 
* @return \Illuminate\Http\Response 
*/ 
public function update(Request $request, $id) 
{ 
    $this->validate($request, [ 
     'apartament' => 'required', 
     'nume' => 'required', 
    ]); 

    Item::find($id)->update($request->all()); 
    return redirect()->route('itemCRUD.index') 
        ->with('success','Intrare actualizata cu succes'); 
} 

/** 
* Remove the specified resource from storage. 
* 
* @param int $id 
* @return \Illuminate\Http\Response 
*/ 
public function destroy($id) 
{ 
    Item::find($id)->delete(); 
    return redirect()->route('itemCRUD.index') 
        ->with('success','Item deleted successfully'); 
} 
} 

Маршрут устанавливается как:

Route::resource('itemCRUD','ItemCRUDController'); 

Что может быть причиной этого ErrorException, и как я могу избежать этого?

+0

кажется, что вы включили свой 'show.blade.php' в' finaly.blade.php' и требует переменную '$ item'. Фактически, я не вижу, что это относится к вашим кодам, но может быть, вам что-то не хватает – Rashad

+0

Где вы видите, что «включить ваш show.blade.php в finaly.blade.php»? –

+0

я не вижу. Но ошибка возникает из 'show.blade', когда вы собираетесь открывать' finaly.blade'. – Rashad

ответ

0

Поскольку вы используете контроллер ресурсов itemCRUD/finalu всегда будет маршрут к itemCRUD/show/{id}

Чтобы обойти эту проблему, возможно, потребуется добавить в другой маршрут.

Route::get('itemCRUD.finalu','[email protected]'); 
Route::resource('itemCRUD','ItemCRUDController'); 
Смежные вопросы