【问题标题】:Routing did not work properly in laravel 5.1路由在 laravel 5.1 中无法正常工作
【发布时间】:2016-09-07 18:54:41
【问题描述】:

我目前正在做一个名为 Doctor Management System 的项目。在这个项目中,我被卡住了,因为我的路线无法正常工作。当我必须使用特定的 id 时,它给了我 Gibberish id。 我的路线文件是

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

我的控制器是

    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Input;
use App\Division;
use App\District;
use App\Category;
use App\Dcategory;
use App\Hospital;
use App\Doctor;
class UserController extends Controller
{


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

             $district=District::find($id); 
             $category=Category::find($id);
             $hospital=Hospital::find($id);


            return view('users.hospital_info')
                        ->with('divisions',  $divisions)
                        ->with('division', $division)
                        ->with('district', $district)
                        ->with('category',$category)
                        ->with('hospital',$hospital);
        }

我的视图文件是

<?php $active="hospital"; ?>

@extends('layouts.dashboard') @section('内容')

<section id="feature" class="transparent-bg">
    <div class="container">
       <div class="center wow fadeInDown">
            <h2>Renowned Hospital in {{ $district->name }}</h2>
        </div>

        <div class="row">
            <div class="features">
                @foreach($categories as $category)
                <div class="col-md-4 col-sm-6 wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="600ms">
                    <div class="feature-wrap">
                        <h2>{{ $category->name }}</h2>
                        <h3><a  href="{!! URL::route('hospital_info') !!}"> View Details</a></h3>
                    </div>
                </div><!--/.col-md-4-->
                @endforeach


            </div>
        </div>
    </div>
</section>

@停止

错误是:

在这里你可以看到我没有找到 id。但是如果我静态地给出 id 它会显示信息。我找不到问题出在哪里。请帮我解决这个问题。

【问题讨论】:

  • 在视图中,您没有使用您在路线中给出的路线。请提供相关文件。 此视图文件没有该路由,即 route('hospital_info')
  • 我更新了我的代码。请看@itachi
  • 当我静态给出值时,它会给出我所需的输出。如果我缺少正确的数据,那么当我给出静态 url 时,它如何给我输出。 @Mojtaba

标签: php laravel laravel-5.1


【解决方案1】:

你在你的 URL 中使用了{id},它应该被替换为整数 id。例如你的 URL 应该是http://localhost/doctor_info/public/district/hospital/hospital_info/1

【讨论】:

  • {id} 是动态的。它来自客户端。您建议将其设为静态。
  • 是的,但是您将其用作 {id} 的错误截图。这就是您从服务器收到此错误的原因
  • 那我应该写什么让它动态@aldrin27
  • 在屏幕截图中,当我到达 url 时,它没有找到 id,所以它只打印 {id}。这是我的问题。如何动态查找 id?
  • @JahidMahmud 在浏览器中编写 URL 时,它应该与我在回答中提到的相同。
【解决方案2】:

你应该在你的控制器中写这个

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

         $district=District::find($id);
         $categories=Category::all(); 
         $category=Category::find($id);
         $hospital=Hospital::find($id);
         // $hospitals =$hospital->paginate(5);
         $hospitals = Hospital::where('district_id',$id)->paginate(2);


         $doctor=User::find($id);
         $doctors = User::where('district_id',$id)->paginate(1);
        // $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('category',$category)
                    ->with('hospital',$hospital)
                    ->with('hospitals',$hospitals)
                    ->with('doctor',$doctor)
                    ->with('doctors',$doctors);
    }

在你的视图文件中你应该写

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

    <section id="feature" class="transparent-bg">
        <div class="container">
           <div class="center wow fadeInDown">
                <h2>Renowned Hospital in {{ $district->name }}</h2>
            </div>

            <div class="row">
                <div class="features">
                    @foreach($categories as $category)
                    <div class="col-md-4 col-sm-6 wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="600ms">
                        <div class="feature-wrap">
                            <h2>{{ $category->name }}</h2>
                            <h3><a  href="{!! URL::route('hospital_info',$district['id']) !!}"> View Details</a></h3>
                        </div>
                    </div><!--/.col-md-4-->
                    @endforeach


                </div>
            </div>
        </div>
    </section>
@stop

【讨论】:

  • 谢谢先生。你帮我解决了我的三个问题。你能帮我解决这个项目中的其他问题吗?
  • 什么问题? @Masuma Sultana
  • 我的个人资料中还有另外两个问题。你能帮我解决这个问题吗
  • 我尽力了@Masuma Sultana
猜你喜欢
  • 2018-01-17
  • 2017-10-15
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
相关资源
最近更新 更多