URL id等于if语句或elseif语句打开页面

时间:2015-12-11 18:58:11

标签: php laravel-5.1

1-在此步骤中正确工作

this url work

这是正确的工作 enter image description here

2-不在此步骤

帮我完成这一步

index.blade.php页面

导航栏代码

 <nav class="navigation">
          <ul class="sf-menu">
            <li><a href="{{ url('/') }}">Home</a>
            </li>
            <li><a href="{{ url('about') }}">About Us</a></li>
            <li><a href="javascript:;">Category</a>
              <ul class="dropdown">
                <li><a href="{{ url('grid/1') }}">Buy and Sell</a></li>
                <li><a href="agent-detail.html">Car and Vehicles</a></li>
                <li><a href="my-properties.html">Real Estate</a></li>
                <li><a href="submit.html">Pets</a></li>
                <li><a href="pricing.html">Jobs</a></li>
                <li><a href="login.html">Community</a></li>
                <li><a href="404.html">Resumes</a></li>
              </ul>
            </li>
  1. 此锚标记(1)中的问题传递给URL enter image description here
  2. 我的路线代码

    Route::resource('/', 'BasicController');
    Route::resource('about', 'BasicController@about');
    Route::resource('contact', 'BasicController@contact');
    Route::resource('grid', 'BasicController@grid');
    

    这是我的控制器代码

    <?php
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    use App\Http\Requests;
    use App\Http\Controllers\Controller;
    
    class BasicController extends Controller
    {
        public function index(){  
            return view('index');
        }
        public function about(){   
           return view('about');
        }
    
        public function contact(){
           return view('contact');
        }
         public function grid($id)
    {  
        $id = $this->uri->segment(3);
    
        if ($id == 1) {
           return view('buy-and-sell/grid');
        }
        elseif ($id == 2) {
            return view('car-and-vehicels/grid');
        }
        elseif ($id == 3) {
            return view('country/grid');
        }
        else{
             return view('other/grid');
        }
    
      }
    }
    

    点击买卖 enter image description here

    解决此问题

    1. 第一个问题 enter image description here

      BasicController

      公共职能网格($ id) {

      $id = $this->uri->segment(3); <!-- Line number 30-->
      
      if ($id == 1) {
         return view('buy-and-sell/grid');
      }
      elseif ($id == 2) {
         return view('car-and-vehicels/grid');
      }
      elseif ($id == 3) {
         return view('country/grid');
      }
      else{
         return view('other/grid');
      } 
      

      }

    2. 第二个问题 enter image description here

1 个答案:

答案 0 :(得分:0)

您必须应用以下更改:

1。)您的方法签名是错误的。如下所示,Laravel将自动从您的url中传入“数字”变量$ id(但作为第二个(!)参数)。此外,您还必须通过use Illuminate\Http\Request;声明在标题中导入请求!

public function grid(Request $request, $id)

2.。)不要使用$this->uri->segment,而是直接使用传递的$ id(这是代表segement 3的slug)。您正在使用资源控制器,Laravel会自动为您执行映射。

所以看起来应该是这样的:

public function grid(Request $request, $id)
    {  
        //$id = $this->uri->segment(3); //COMMENT THIS OUT!!!

        if ($id == 1) {
           return view('buy-and-sell/grid');
        }
        elseif ($id == 2) {
            return view('car-and-vehicels/grid');
        }
        elseif ($id == 3) {
            return view('country/grid');
        }
        else{
             return view('other/grid');
        }

3.。)关于CSS。你的路径错了,但如果没有进一步的信息,这很难调试/帮助

重要提示:它似乎正在运行laravel作为子文件夹安装。您将遇到非常奇怪的问题(像这一个,我怀疑这个子文件夹安装可能是原因)。我不久前在laravel打开了一个bug,但它已经关闭了。不支持子文件夹安装。

我真的建议你按照主页上的描述安装laravel作为专用虚拟主机,public文件夹映射到域本身(如http://localhost),换句话说“public”就是你的直接在http :: // localhost下提供的根文件夹。