【发布时间】:2018-10-14 23:09:56
【问题描述】:
这是我的索引视图页面。
@extends('layouts.app')
<!DOCTYPE html>
<html lang="en">
<head>
<link href="css/hotel.css" rel="stylesheet" type="text/css"/>
</head>
<body>
@section('content')
<h2>Hotels</h2>
<div class="container-fluid sug-1">
<div class="ui_column is-12 h1 ui_header sug-1head">{{ $data[0]->city}}
</div>
<div style="display:flex; flex-direction: row; justify-content: center; align-items: center">
@for ($i = 0; $i < 4; $i++)
<div class= "img__wrap">
<form method="get" action="/hotel/viewpost.blade.php">
<a href="/hotel/viewpost/{{$data[$i]->id }}"><img class = "img__img" src={{asset($data[$i]->image)}} alt="Logo" style="width:90%;height:90%" ></a>
<p class = "img__description"> {{$data[$i]->name}} <br> {{$data[$i]->rating}}<br> {{$data[$i]->price}}</p>
</form>
</div>
@endfor
<input class="sug1btn" type=Button id="allsugbtn" onclick="findHotels();" value="See all"/>
</div>
@endsection
</body>
</html>
这是我的索引的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HotelController extends Controller
{
public function index()
{
$hotelData['data'] = \DB::table('hotels')->get();
if(count($hotelData) > 0)
{
return view("hotel.index",$hotelData);
}
else
{
return view("hotel.index");
}
}
}
我创建了一条从我的索引到 viewpost 的路线,即以下代码:
@extends('layouts.app')
<!DOCTYPE html>
<html lang="en">
<head>
<link href="css/hotel.css" rel="stylesheet" type="text/css"/>
</head>
<body>
@section('content')
<div class="container-fluid sug-1">
<div class="ui_column is-12 h1 ui_header sug-1head">
</div>
<div style="display:flex; flex-direction: row; justify-content: left; align-items: left">
<div class="card">
<img src={{asset($data->image)}} alt="Image" style="width:100%">
<div class="container">
<h4><b>{{$data->name}}</b></h4>
<p>Rating: {{$data->rating}}<br>Price: {{$data->price}}</p>
</div>
</div>
<button href="{{ route('/createhotel') }}" type="button" class="btn btn-default">Left</button>
</div>
<h2>Reviews</h2>
@foreach ($reviews as $review)
<p>{{ $review->user_name }}<br>{{ $review->description }}</p>
<br><br><br>
@endforeach
@endsection
</body>
</html>
这是我的 viewpost 和 createhotel 的 HotelPostController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HotelPostsController extends Controller
{
public function show($hotelviewid)
{
$imagedata['data'] = \DB::table('hotels')->select('id','image','name','city','rating','price' )->where('id', $hotelviewid)->first();
$reviewdata['reviews'] = \DB::table('hotel_reviews')->where('hotel_id', $hotelviewid)->get();
return view("hotel.viewpost",$imagedata,$reviewdata);
}
public function createhotel()
{
return view("hotel.createhotel");
}
}
这是 web.php 路由文件:
Route::get('/', 'HotelController@index');
Route::get('/hotel', 'HotelController@index');
Route::get('/hotel/viewpost/{hotelviewid}', 'HotelPostsController@show');
Route::get('travelapp.me/hotel/viewpost/createhotel, 'HotelPostsController@createhotel');
我面临的问题是,在视图文件夹中,我按酒店名称创建了一个子文件夹,它有 3 个文件索引、viewpost 和 createhotel。第一个页面是索引,当用户点击某个帖子时,它会在 viewpost 中打开。现在从那里我想创建一个转到第三页的按钮,即 creathotel。我在控制器中创建了一个函数,还添加了路由,但它给出了未定义路由的错误。
【问题讨论】:
-
你已经发布了所有那些已经工作并且没有任何问题的代码,但是你没有发布
HotelReviewController的代码......你写的打开的链接是什么创建页面? -
我已经删除了
HotelReviewController部分,现在情况是我在viewpost 页面上。然后点击一个按钮后我想去createhotel页面。 -
好的,现在在您的
HotelController中创建一个名为create()的方法,并创建一个指向该方法的路线。而且我假设您不想正确到达外部路线('travelapp.me/hotel/viewpost/createhotel)...这是什么'travelapp.me/hotel/viewpost/createhotel -
如果您想使用
'HotelPostsController@createhotel',请删除travelapp.me,并将您的链接指向/hotel/viewpost/createhotel....请参阅下面的帖子 -
我想我必须添加完整的路线所以我添加了这个。
travelapp.me/hotel/viewpost/createhotel