index.blade.php
@extends('layout.grail')
@section('title','新闻列表')
@section('main')
<h2>新闻列表</h2>
<table class="table">
<thead>
<tr>
<th>编号</th><th>标题</th><th>作者</th><th>类别</th><th>操作</th>
</tr>
</thead>
<tbody>
@foreach($newsList as $news)
<tr>
<td>{{$news->id}}</td>
<td><a href="{{route('news.show',$news->id)}}">{{$news->title}}</a></td>
<td>{{$news->user_id}}</td>
<td>{{$news->category_id}}</td>
<td class="operation"><a href="{{route('news.edit',$news->id)}}">修改</a>
<form action="{{route('news.destroy',$news->id)}}" method="post">
@method('delete')
@csrf
<button onclick="return confirm('您确定要删除吗?')">删除</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
@endsection
<style>
button{
border:none;
color: #0d6efd;
}
table a{
display: block;
text-decoration-line: none;
margin-right: 20px;
}
table a:hover{
text-decoration-line: underline;
}
.optgroup>a,button:hover {
text-decoration-line:underline;
}
.operation{
display: flex;
}
</style>
show.blade.php
@extends('layout.grail')
@section('title',$news->title)
@section('main')
<div>
<div>
{{$news->title}}
</div>
<p>{{$news->user_id}}</p>
<div>
{{$news->content}}
</div>
</div>
@endsection
NewsController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class NewsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$newsList=DB::table('news')->orderBy('id','desc')->get();
return view('news.index',compact('newsList'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
return view('news.addnews');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
// dd($request->all());
$data=$request->except('_token');
$data['user_id']=1;
// dd($data);
$res=DB::table('news')->insert($data);
if($res){
return redirect('/news');
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
$news=DB::table('news')->where('id',$id)->first();
return view('news.show',compact('news'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
$news=DB::table('news')->find($id);
return view('news.edit',compact('news'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
// dd($request->all());
$news=$request->except('_token','_method');
$res=DB::table('news')->where('id',$id)->update($news);
return redirect('news');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
DB::table('news')->where('id',$id)->delete();
return redirect('news');
}
}
addnews.blade.php
@extends('layout.grail')
@section('title','添加新文章')
@section('main')
<form action="{{route('news.store')}}" method="post">
<div class="form-group">
<label for="title">标题</label>
<input type="text" id="title" name="title" class="form-control" >
</div>
<div class="form-group">
<label for="category_id">类别</label>
<select name="category_id" id="category_id" class="form-control">
<option value="0">请选择新闻类别</option>
<option value="1">时政要闻</option>
<option value="2">经济动态</option>
<option value="3">健康信息</option>
<option value="4">体育新闻</option>
<option value="5">娱乐八卦</option>
<option value="6">国际新闻</option>
</select>
</div>
<div class="form-group">
<label for="content">内容</label>
<textarea name="content" id="content" cols="30" rows="10" class="form-control"></textarea>
</div>
<div>
<input type="submit" value="添加">
</div>
@csrf
</form>
@endsection
edit.blade.php
@extends('layout.grail')
@section('title','修改新闻')
@section('main')
<form action="{{route('news.update',$news->id)}}" method="post">
@method('put')
<div class="form-group">
<label for="title">标题</label>
<input type="text" id="title" name="title" class="form-control" value="{{$news->title}}">
</div>
<div class="form-group">
<label for="category_id">类别</label>
<select name="category_id" id="category_id" class="form-control">
<option value="0">请选择新闻类别</option>
<option value="1">时政要闻</option>
<option value="2">经济动态</option>
<option value="3">健康信息</option>
<option value="4">体育新闻</option>
<option value="5">娱乐八卦</option>
<option value="6">国际新闻</option>
</select>
</div>
<div class="form-group">
<label for="content">内容</label>
<textarea name="content" id="content" cols="30" rows="10" class="form-control">
{{$news->content}}
</textarea>
</div>
<div>
<input type="submit" value="修改" name="">
</div>
@csrf
</form>
@endsection