php 如何在Laravel中打开特定页面

vbopmzt1  于 2022-12-10  发布在  PHP
关注(0)|答案(2)|浏览(227)

我是一个新手在发展请帮助,而不是判断我。记住每个人都从0开始。
我想用特定的id打开我的webiste帖子,但是当我转到这个链接时,它是第一个帖子页面http://localhost:8000/tickets/create/1,它的打开正确的id(1是id),但告诉我“404未找到”。
这是我的密码

控制器

public function create()
    {
        $ticketsinfos = Tickets::with('companies')->get();
        $tickets = Companies::with('tickets')->get();
        $severities = Severities::with('severity')->get();
        $ticketscounts = Tickets::count();
        //return view('dashboard.index',['ticketscounts'=> $ticketscounts]);
        $users = DB::table('tickets')->get();
      
        return view('customer.index')->with(['tickets'=> $tickets])->with(['severities' => $severities])->with(['ticketsinfos' => $ticketsinfos])->with(['ticketscounts'=> $ticketscounts])->with(['users'=>$users]);
      
         //dd($users->toArray());
    }

刀片服务器.php

<tr>
                                    @foreach ($ticketsinfos as $ticketinfo)
                                    <td>IR-173049</td>
                                    <td>Dito Katsarava</td> 
                                    <td>{{ $ticketinfo->companies->name }}</td>
                                    @foreach($users as $user)
                                    <td><a href="tickets/create/{{ $user->id }}">{{ Str::limit($ticketinfo->ticket_title, 50, '...') }}</a></td>
                                    @endforeach
                                    <td><button class="btn btn-danger btn-sm" type="button">Action Needed<br></button><br></td>
                                    <td>Tako Kiknadze</td>
                                    <td>{{ $ticketinfo->created_at }}</td>
                                    <td>{{ $ticketinfo->updated_at }}</td>
                                </tr>

                                @endforeach  
                              
                                </tr>

我的路线:

Route::resource('/tickets', TicketsController::class);

我能为你做些什么呢?

  • 谢谢-谢谢
ttisahbt

ttisahbt1#

所以我认为问题的一部分是你试图去的URL是不正确的。你指定它是一个Route::Resource。这是写路由的一个快捷方式。它所做的就是创建一个artisan route:list可以看到的路由列表。
web.php中的Route::resource('/tickets', TicketsController::class);行创建特定的路由并指向该类中的特定方法。
具体方法有:

- index : Display a listing of the resource.
 - create : Show the form for creating a new resource.
 - store : Store a newly created resource in storage.
 - show : Display the specified resource.
 - edit : Show the form for editing the specified resource.
 - update : Update the specified resource in storage.
 - destroy : Remove the specified resource from storage.

就个人而言,我喜欢使用artisan命令artisan make:model --allartisan make:model --resource。我建议您使用artisan make:controller --resource Bogus,然后看看它如何影响您的路由。默认注解清楚地说明了每个路由是如何使用的,以及它所期望的参数。
@Bromerbeer我想我给你的信息是正确的。“Create”路径没有参数,也不接受任何参数。从你的措辞来看,你似乎想要http://localhost:8000/tickets/show/1
然后它将接受一个'id'参数(在本例中是一个模型):

/**
 * Display the specified resource.
 *
 * @param  \App\Models\BogusModel  $bogus
 * @return \Illuminate\Http\Response
 */
public function show(BogusModel $bogus)
{
    //
}

其中,“create”方法不带参数:

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
    //
}
qltillow

qltillow2#

您的路由有问题
请尝试将您的路由更新为如下所示:

Route::resource('tickets/create/{id}', TicketsController::class);

并更新函数,如下所示:

public function create($id)
{
    $ticketsinfos = Tickets::with('companies')->get();
    $tickets = Companies::with('tickets')->get();
    $severities = Severities::with('severity')->get();
    $ticketscounts = Tickets::count();
    //return view('dashboard.index',['ticketscounts'=> $ticketscounts]);
    $users = DB::table('tickets')->where('id',$id)->get();
  
    return view('customer.index')->with(['tickets'=> $tickets])->with(['severities' => $severities])->with(['ticketsinfos' => $ticketsinfos])->with(['ticketscounts'=> $ticketscounts])->with(['users'=>$users]);
  
     //dd($users->toArray());
}

相关问题