【问题标题】:Laravel Route not working error is Trying to get property of non-objectLaravel Route not working 错误是 Trying to get property of non-object
【发布时间】:2016-07-23 18:46:40
【问题描述】:

我现在正在从事一个名为医院和医生信息的项目。在这里,我在孟加拉国有不同的部门,每个部门都有一些地区,根据他们的所有权,有某些类型的医院。但是当我从中获得不同医院的价值时,它向我显示了一些错误。 我的路线文件

Route::get('/', array('as' =>'home' ,'uses' => 'UserController@index'));

Route::get('/about_us', array('as' =>'about_us' ,'uses' => 'UserController@about_us'));

Route::get('/district/{id}', array('as' =>'district' ,'uses' => 'UserController@district'));

Route::get('/district/hospital/{id}', array('as' =>'hospital' ,'uses' => 'UserController@hospital'));

Route::get('/district/hospital/hospital_info/{id}', array('as' =>'hospital_info' ,'uses' => 'UserController@hospital_info'));

我的控制器是

public function hospital($id)
{

     $divisions = Division::all();
     $division=Division::find($id); 

     $district=District::find($id); 

     $categories=Category::all();

    // $districts=District::where('division_id', '=', $divisions->id)->get();

    // if (!$district)
    // {
    //     throw new NotFoundHttpException;
    // }
    return view('users.hospital')
                ->with('divisions',  $divisions)
                ->with('division', $division)
                ->with('district', $district)
                ->with('categories',$categories);
}


public function hospital_info($id)
{
    $divisions = Division::all();
     $division=Division::find($id); 

     $district=District::find($id); 

     $categories=Category::all();
     $hospitals=Hospital::find($id); 

    // $districts=District::where('division_id', '=', $divisions->id)->get();

    // if (!$district)
    // {
    //     throw new NotFoundHttpException;
    // }
    return view('users.hospital_info')
                ->with('divisions',  $divisions)
                ->with('division', $division)
                ->with('district', $district)
                ->with('categories',$categories)
                ->with('hospitals',$hospitals);
}

我的视图文件是

    <?php $active="hospital"; ?>
@extends('layouts.dashboard')
@section('content') 

    <section id="blog" class="container">
        <div class="center">
            <h2>Hospital Information</h2>
            <h3 class="lead">The government approved a renowned hospital and improved quality of service address , doctor , patient viewing time, bed , pathological tests in various subjects including costs and find the information here .<br> The bed and cabin bookings online , pathological tests , the doctor can be a serial for the meeting from the app .</h3>
        </div>

        <div class="blog">
            <div class="row">
                 <div class="col-md-12">
                    <div class="blog-item">
                        <div class="row">

                            <div class="col-xs-12 col-sm-4 blog-content">

                                <a href="#"><img class="img-responsive img-blog" src="images/2.jpg" width="100%" alt="" /></a>
                            </div>
                            @foreach($division->districts as $district)
                                @foreach($district->categories as $category)
                                    @foreach($category->$hospitals as $hospital)
                                    <div class="col-xs-12 col-sm-6 blog-content">
                                        <h2>{{ $hospital->name }}</h2>
                                    </div>
                                    @endforeach
                                @endforeach
                            @endforeach


                    <ul class="pagination pagination-lg">
                        <li><a href="#"><i class="fa fa-long-arrow-left"></i>Previous Page</a></li>
                        <li class="active"><a href="#">1</a></li>
                        <li><a href="#">2</a></li>
                        <li><a href="#">3</a></li>
                        <li><a href="#">Next Page<i class="fa fa-long-arrow-right"></i></a></li>
                    </ul><!--/.pagination-->
                </div><!--/.col-md-8-->

            </div><!--/.row-->
        </div>
    </section><!--/#blog-->
@stop

&我的模型是 Hospital.php

    <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Hospital extends Model
{

    protected $fillable = [
        'name',
        'division_id',
        'district_id',
        'category_id',
    ];

    public function district()
    {

        return $this->belongsto('App\District');
    }
}

区.php

    <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class District extends Model
{
    protected $fillable=[
        'name',
        'division_id',
    ];



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

    public function category()
    {
        return $this->hasmany('App\Categories');
    }
    public function dcategory()
    {
        return $this->hasmany('App\Dcategories');
    }

    public function hospital()
    {
        return $this->hasmany('App\Hospital');
    }
}

错误是

请帮助我。提前致谢

【问题讨论】:

    标签: php mysql laravel laravel-5.1


    【解决方案1】:

    在你的视图文件中,不应该是这样的吗?

    @foreach($division-&gt;$districts as $district)

    @foreach($district-&gt;$categories as $category)

    【讨论】:

    • 那我应该怎么写我的视图文件。它没有找到特定行的ID。请帮助
    【解决方案2】:

    这一行:

    @foreach($dcategory->$hospitals as $hospital)
    

    错了。变量 $dcategory 不存在,应该这样调用医院:

    @foreach($category->hospitals as $hospital)
    

    如果有关联的项目,您还应该检查您的数据库,因为可能没有与 dcategory 关联的医院。

    【讨论】:

    • 还要检查文档中的关系:laravel.com/docs/5.1/…。无需从控制器传递所有这些变量。您应该使用 with() 来调用关联的模型实体,然后传递您从查询中获得的变量。
    • 试过但没有得到结果。它没有找到id。请帮忙
    • id,是医院id还是科室id?请重新排序您的代码。您正在使用 id 获取医院和部门。
    • 这是医院的编号,请帮忙
    • 正如我所说,请编辑您的问题并重新排序您的代码。您正在显示一个不响应您正在显示的任何控制器方法的视图。它在异常中显示“doctor_info”,在控制器中是“hospital”和“hospital_info”。
    猜你喜欢
    • 1970-01-01
    • 2019-11-05
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 2020-04-12
    • 2023-02-24
    相关资源
    最近更新 更多