我有一个简单的管理员视图,其中显示了所有可能的任务。我想让管理员可以看到所有任务,并可以在同一视图中编辑每个任务。我有一个表格,其中包含所有任务数据和每个记录的编辑按钮。
每个任务的编辑部分应显示在表格的右侧。
我不确定在单击该记录的编辑按钮后如何将每个正确的任务项添加到视图的编辑部分。
有可能只用laravel和blade来做到吗?
我的观点
@extends('layouts.app')
@section('content')
<div class="jumbotron text-center">
<h2>ADMIN PANEL</h2>
</div>
<div class="container">
<div class="row" >
<div class="col-md-7">
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Name</th>
<th scope="col">Price</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
@foreach($quests as $questIndex => $quest)
<tr>
<th scope="row">{{($questIndex + 1)}}</th>
<td>{{$quest->name}}</td>
<td>No price set</td>
<td><a class="btn btn-outline-dark mr-2" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">Edit</a><a class="btn btn-outline-dark"> Delete</a></td>
</tr>
@endforeach
</tbody>
</table>
{{$quests->links() }}
</div>
// edit the quest here
<div class="col-md-4 collapse" id="collapseExample">
<p> Edit the quest </p>
</div>
</div>
</div>
@endsection
我的控制器
class AdminController extends Controller
{
public function index()
{
$quests = Quest::simplePaginate('20');
return view('admin.index', compact('quests'));
}
}
答案 0 :(得分:1)
正如评论中指出的那样,有几种方法可以做到这一点。
方法1:
在不使用ajax的情况下使用一条简单的路线(在我看来,这是一种不好的做法)
Routes.web
Route::post("editQuest", "MyControllerQuest@editQuest")->name("editQuest");
*。blade.php
然后,您将按照注释中的说明打开模态,然后有一个名为Make changes
的按钮。
<form action="{{ route("editQuest") }}">
...
<input type="hidden" name="quest_id" value=""> // You would need to update this value whenever a user clicks on the button to edit the record with the id of the quest
<button type="submit">Make Changes</button>
</form>
然后在“ MyControllerQuest”中进行更改并将用户重定向到上一页。
方法2: 您可以进行ajax调用以进行更改。我不会针对该主题写完整的答案,因为这超出了问题的范围,但是您可以点击此链接(Google的第一个链接)Laravel and ajax
方法2的优点: 通过ajax进行更改,您无需再次加载整个页面,从而节省了服务器不必获取要分页的20条记录的时间
编码愉快!
答案 1 :(得分:0)
您只需在刀片中检查 $ quests 的值,然后从两个函数(编辑和索引)中调用同一视图,例如
@extends('layouts.app')
@section('content')
<div class="jumbotron text-center">
<h2>ADMIN PANEL</h2>
</div>
<div class="container">
<div class="row" >
<div class="col-md-7">
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Name</th>
<th scope="col">Price</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
@if( isset($quests) && count($quests) )
@foreach($quests as $questIndex => $quest)
<tr>
<th scope="row">{{($questIndex + 1)}}</th>
<td>{{$quest->name}}</td>
<td>No price set</td>
<td><a class="btn btn-outline-dark mr-2" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">Edit</a><a class="btn btn-outline-dark"> Delete</a></td>
</tr>
@endforeach
@else
//content for index page
@endif
</tbody>
</table>
{{$quests->links() }}
</div>
// edit the quest here
<div class="col-md-4 collapse" id="collapseExample">
<p> Edit the quest </p>
</div>
</div>
</div>
@endsection
或者,如果想要除索引页面的表以外的其他内容,则可以在表之前设置该条件。
希望这会有所帮助