laravel增刪改查

1.model層
2.控制層(含圖片處理糙申,內(nèi)容驗證)
3.插入信息的頁面
4.信息列表頁面
5.信息編輯頁面
6.在提交頁面?zhèn)鬟f提示信息

補充 ajax刪除

  <a href="{{url('admin/article/'.$v->art_id.'/edit')}}">修改</a>
  <a href="javascript:;" onclick="delArt({{$v->art_id}})">刪除</a>
    <script>
        //刪除分類
        function delArt(art_id) {
            layer.confirm('您確定要刪除這篇文章嗎温艇?', {
                btn: ['確定','取消'] //按鈕
            }, function(){
                $.post("{{url('admin/article/')}}/"+art_id,{'_method':'delete','_token':"{{csrf_token()}}"},function (msg) {
                    if(msg == 0){
                        layer.msg('刪除失敗', {icon: 5});
                        setTimeout("location.reload()",1000);
                        //window.location.reload();
                    }else {
                        layer.msg('刪除成功', {icon: 1});
                        setTimeout("location.reload()",1000);
                        //window.location.reload();
                    }
                });
            }, function(){

            });
        }
    </script>

1.model層

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Carousel extends Model
{
    protected $table = 'anchong_carousel_figure';
    protected $primaryKey = 'figure_id';
    protected $guarded = [''];
    public $timestamps = false;
//    添加內(nèi)容
    public function add($data)
    {
        $this->fill($data);
        if ($this->save()){
            return true;
        }else{
            return false;
        }
    }

    /*
     * 編輯信息
     */
    public function carouselupdate($id,$data)
    {
        $num = $this->find($id);
        if ($num->update($data)){
            return true;
        }else{
            return false;
        }
    }

    /*
     * 刪除輪播圖
     */
    public function del($id)
    {
        return $this->where('figure_id',$id)->delete();
    }

}
?>

2.控制層

<?php
namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Validator,DB;
use Illuminate\Support\Facades\Input;

//輪播圖的處理類
class CarouselController extends ConmonController
{
    public $carousel;
    public function __construct()
    {
        $this->carousel = new \App\Carousel();
    }

//    展示輪播圖內(nèi)容
    public function index()
    {
        // 輪播圖
        $datas = DB::table('anchong_carousel_figure')->orderBy('figure_id','desc')->paginate(5);
        return view('admin.carousel.index',compact('datas'));
    }
//    創(chuàng)建輪播圖
    public function create()
    {
        return view('admin.carousel.create');
    }

//    編輯圖片內(nèi)容船殉,跳轉到編輯頁面
    public function edit($id)
    {
        $datas = $this->carousel->find($id);
        return view('admin.carousel.edit',compact('datas'));
    }

    //    接受更新的數(shù)據(jù)师枣,更新數(shù)據(jù)
    public function update($id)
    {
        $data = Input::all();
        $res = $this->carousel->carouselupdate($id,$data);
        if($res){
            return redirect('carousel')->with('message', '更新成功'); //要在模板上用session('message')取值
        }else{
            return back()->with('errors','更新失敗');
        }
    }

    //刪除某條信息
    public function destroy($id)
    {
        $res = $this->carousel->del($id);
        if ($res){
            return response()->json(['status' => 0, 'msg' => '刪除成功']);
        }else{
            return response()->json(['status' => 1, 'msg' => '刪除失敗,請重試']);
        }
    }

//    保存輪播圖信息
//    保存內(nèi)容
    public function store(\Request $request )
    {

        $input = Input::except('_token','picfile');
        $res = $this->uploadpic('picfile','uploads/images');
        switch ($res){
            case 1: return back()->with('errors','圖片上傳失敗');
            case 2: return back()->with('errors','圖片不合法');
            case 3: return back()->with('errors','圖片儲存失敗');
            default :
                $input['figure_img'] = $res; //把得到的地址給picname存到數(shù)據(jù)庫
                if($this->carousel->add($input)){
                    return redirect('carousel')->with('message', '發(fā)布成功'); //這個message是存在session里面的癞揉,在模板中藥通過session取值
                }else{
                    return back()->with('errors','數(shù)據(jù)填充失敗')->withInput();;
                }
        }
    }
}


// 被繼承的commonController控制器里面的圖片上傳處理
class ConmonController extends Controller
{
//    上傳圖片
    public function uploadpic( $filename, $filepath)
    {
        //        1.首先檢查文件是否存在
        if (\Request::hasFile($filename)){
            //          2.獲取文件
            $file = \Request::file($filename);
            //          3.其次檢查圖片手否合法
            if ($file->isValid()){
                //          4.將文件取一個新的名字
                $newName = 'partner'.time().rand(100000, 999999).$file->getClientOriginalName();
                //           5.移動文件,并修改名字
                if($file->move($filepath,$newName)){
                    return $filepath.'/'.$newName;   //返回一個地址
                }else{
                    return 3;
                }
            }else{
                return 2;
            }
        }else{
            return 1;
        }
    }
    // $realPath = $file->getRealPath(); //這個表示的是緩存在tmp文件夾下的文件的絕對路徑;
    // $tmpName = $file -> getFileName();   //緩存在tmp文件中的文件名
    // $clientName = $file -> getClientOriginalName(); //獲取文件名稱
    //$extension = $file->getClientOriginalExtension();   //上傳文件的后綴
}



// 如果需要做驗證判斷
public function leaveStore()
{
    $input = Input::all();
    $rules = [
        'phone'=>'required',
        'content'=>'required',
    ];
    $message = [
        'phone.required'=>'電話號碼必須填寫噪裕!',
        'content.required'=>'反饋信息必須填寫!',
    ];
    $validator = Validator::make($input,$rules,$message);
    if ($validator->fails()){
        return back()->withErrors($validator)->withInput();
    }
    $result = $this->leave->add($input);
    if ($result){
        return back()->with('message','留言成功');//這個值是存在session中的
    }else{
        return back()->with('errors','留言失敗')->withInput(); //返回錯誤信息在模板中讀出怎虫,并將用戶填寫的信息用withInput();返回
    }

}

3.插入信息的頁面

@extends('admin.admin')
@section('content')
<ul class="breadcrumb">
    <li><a href="{{url('admin/console')}}">首頁</a></li>
    <li>輪播圖</li>
    <li>輪播圖添加</li>
</ul>
<div class="box">
    <div class="box-header with-border">
        <h3 class="box-title">輪播圖添加</h3>
    </div>
    <div class="box-body">
    // 1暑认。如果插入信息失敗,就這樣處理大审,如果錯誤是一個變量蘸际。就遍歷,是一個單量徒扶,就直接輸出
        @if(count($errors)>0)
            <div class=""mark>
                @if(is_object($errors))
                    @foreach($errors->all() as $error)
                        <p>{{$error}}</p>
                    @endforeach
                @else
                    <p>{{$errors}}</p>
                @endif
                @endif
                <form class="form-horizontal" action="{{ url('carousel/')}}" method="POST" enctype="multipart/form-data">
                    {{ csrf_field() }}
                    <div class="form-group">
                        <label class="col-sm-2 control-label" >圖片標題</label>
                        <div class="col-sm-10">
                            <input type="text" name="figure_title" class="form-control" value="{{ old('figure_title') }}"   placeholder="圖片標題" >
                        </div>
                    </div>
                    <div class="form-group">
                        <label  class="col-sm-2 control-label">圖片內(nèi)容</label>
                        <div class="col-sm-10">
                            <input type="text" name="content" class="form-control" value="{{ old('content') }}"  placeholder="圖片內(nèi)容">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="inputPassword3" class="col-sm-2 control-label">選擇文件</label>
                        <div class="col-sm-10">
                            <input type="file" name="picfile" >
                        </div>
                    </div>
                    <div class="form-group row">
                        <div class="col-md-4 col-md-offset-2">
                            <input class="btn btn-primary"  type="submit" value="提交">
                        </div>
                    </div>

                </form>
            </div>

    </div>
@endsection

4.信息列表頁面

@extends('admin.admin')
@section('content')
    <script src="layer/layer.js"></script>
//這個session是插入信息成功粮彤,重定向加with(message')里面的信息
@if (session('message'))
    <div class="alert alert-success">
        {{ session('message') }}
    </div>
@endif
    <div class="box">
        <div class="box-header with-border">
            <h3 class="box-title">輪播圖列表</h3>
        </div><!-- /.box-header -->
        <div class="box-body">
            <table class="table table-hover">
                <tr>
                    <th>ID</th>
                    <th>圖片標題    </th>
                    <th>圖片內(nèi)容    </th>
                    <th>圖片</th>
                    <th>編輯</th>
                </tr>
                @foreach($datas as $data)
                    <tr>
                        <td>{{$data->figure_id }}</td>
                        <td>{{ $data->figure_title }}</td>
                        <td>{{ $data->content }}</td>
                        // 1.讀圖片的時候,前面要加上"/",從根部開始讀取
                        <td><img src="/{{$data->figure_img}}" alt="" style="width: 100;height: 100px;"></td>
                        <td>
                            <a href="{{ url('carousel/'.$data->figure_id.'/edit')  }}" class="btn btn-info btn-primary btn-sm iframe cboxElement"><span class="glyphicon glyphicon-pencil"></span> 編輯</a>
                            <a  class="btn btn-info btn-danger btn-sm iframe cboxElement" href="javascript:;" onclick="delCate({{$data->figure_id}})"><span class="glyphicon glyphicon-trash"></span> 刪除</a>
                        </td>
                    </tr>
                @endforeach
            </table>
        </div><!-- /.box-body -->
        <div class="box-footer clearfix">
            <div class="pull-left">
            // 2.信息成分頁导坟,注意變量是$datas,$links
                {{ $datas->links() }}
            </div>
        </div>
    </div><!-- /.box -->
    <script>
        //刪除分類
        function delCate(id) {
            layer.confirm('你確定刪除嗎屿良?', {
                btn: ['確定','取消'] //按鈕
            }, function(){
                $.post("{{ url('carousel') }}/"+id,{'_method':'delete' ,'_token':'{{csrf_token()}}'},function (data) {
                    if(data.status==0){
                        location.href = location.href;
                        layer.msg(data.msg,{icon:6});
                    }else{
                        layer.msg(data.msg, {icon:6});
                    }
                } );

            }, function(){

            });
        }
    </script>
@endsection

5.信息編輯頁面

@extends('admin.admin')
@section('content')
    <ul class="breadcrumb">
        <li><a href="{{url('admin/admin')}}">首頁</a></li>
        <li>內(nèi)容管理</li>
        <li>圖片編輯</li>
    </ul>
    <div class="box">
        <div class="box-header with-border">
            <h3 class="box-title">圖片編輯</h3>
        </div>
        <div class="box-body">
            <form class="form-horizontal" action="{{ url('carousel/'.$datas->figure_id )}}" method="POST">
                <input type="hidden" name="_method" value="PUT">
                {{ csrf_field() }}
                <div class="form-group">
                    <label class="col-sm-2 control-label" >圖片標題</label>
                    <div class="col-sm-10">
                        <input type="text" name="figure_title" class="form-control" value="{{ $datas->figure_title }}"  placeholder="圖片標題">
                    </div>
                </div>
                <div class="form-group">
                    <label  class="col-sm-2 control-label">圖片內(nèi)容</label>
                    <div class="col-sm-10">
                        <input type="text" name="content" class="form-control" value="{{ $datas->content }}" placeholder="圖片內(nèi)容">
                    </div>
                </div>
                <div class="form-group row">
                    <div class="col-md-4 col-md-offset-2">
                        <input class="btn btn-primary"  type="submit" value="提交">
                    </div>
                </div>

            </form>
        </div>

    </div>
@endsection

6.在提交頁面?zhèn)鬟f成功與否的信息

    //這是在一個被繼承的主頁面里面寫的
    <section class="content">
  @if(is_object($errors))
      @if (count($errors) > 0)
          <div class="alert alert-danger alert-dismissable">
              <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
              <p><i class="icon fa fa-ban"></i>  填寫表單出錯了哦!</p>
              <ul>
                  @foreach ($errors->all() as $error)
                      <li>{{ $error }}</li>
                  @endforeach
              </ul>
          </div>
      @endif
  @else
      <div class="alert alert-danger alert-dismissable">
          <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
          <p><i class="icon fa fa-ban"></i>  出錯了哦惫周!</p>
          <ul>
              <li>{{ $errors }}</li>
          </ul>
      </div>
  @endif

  @if(Session::has('message'))
      <div class="alert alert-success alert-dismissable">
          <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
          <p><i class="icon fa fa-check"></i>  {{Session::get('message')}}</p>

      </div>
  @endif
  @yield('content')
  </section>
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尘惧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子闯两,更是在濱河造成了極大的恐慌褥伴,老刑警劉巖谅将,帶你破解...
    沈念sama閱讀 212,332評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漾狼,死亡現(xiàn)場離奇詭異,居然都是意外死亡饥臂,警方通過查閱死者的電腦和手機逊躁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隅熙,“玉大人稽煤,你說我怎么就攤上這事∏羝荩” “怎么了酵熙?”我有些...
    開封第一講書人閱讀 157,812評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長驰坊。 經(jīng)常有香客問我匾二,道長,這世上最難降的妖魔是什么拳芙? 我笑而不...
    開封第一講書人閱讀 56,607評論 1 284
  • 正文 為了忘掉前任察藐,我火速辦了婚禮,結果婚禮上舟扎,老公的妹妹穿的比我還像新娘分飞。我一直安慰自己,他們只是感情好睹限,可當我...
    茶點故事閱讀 65,728評論 6 386
  • 文/花漫 我一把揭開白布譬猫。 她就那樣靜靜地躺著,像睡著了一般羡疗。 火紅的嫁衣襯著肌膚如雪删窒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,919評論 1 290
  • 那天顺囊,我揣著相機與錄音肌索,去河邊找鬼。 笑死,一個胖子當著我的面吹牛诚亚,可吹牛的內(nèi)容都是我干的晕换。 我是一名探鬼主播,決...
    沈念sama閱讀 39,071評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼站宗,長吁一口氣:“原來是場噩夢啊……” “哼闸准!你這毒婦竟也來了?” 一聲冷哼從身側響起梢灭,我...
    開封第一講書人閱讀 37,802評論 0 268
  • 序言:老撾萬榮一對情侶失蹤夷家,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后敏释,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體库快,經(jīng)...
    沈念sama閱讀 44,256評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,576評論 2 327
  • 正文 我和宋清朗相戀三年钥顽,在試婚紗的時候發(fā)現(xiàn)自己被綠了义屏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,712評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜂大,死狀恐怖闽铐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情奶浦,我是刑警寧澤兄墅,帶...
    沈念sama閱讀 34,389評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站澳叉,受9級特大地震影響隙咸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜耳高,卻給世界環(huán)境...
    茶點故事閱讀 40,032評論 3 316
  • 文/蒙蒙 一扎瓶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泌枪,春花似錦概荷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至修壕,卻和暖如春愈捅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背慈鸠。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評論 1 266
  • 我被黑心中介騙來泰國打工蓝谨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 46,473評論 2 360
  • 正文 我出身青樓譬巫,卻偏偏與公主長得像咖楣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子芦昔,可洞房花燭夜當晚...
    茶點故事閱讀 43,606評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 用戶Model創(chuàng)建 Laravel-增刪改查 1诱贿、數(shù)據(jù)添加 路由/app/http/routes.php /app...
    曹淵說創(chuàng)業(yè)閱讀 2,256評論 0 1
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,837評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)咕缎,斷路器珠十,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • 梳云鬟, 舊容妝凭豪, 娉娉婷婷秀色餐焙蹭, 冰脂顏, 無濁念墅诡, 傾國傾城難比肩壳嚎, 灼灼心桐智, 金不換末早, 自由徜徉天地間, ...
    蘇沐晴閱讀 368評論 12 13
  • 中午剛上班说庭,走進樓道看見曉梅端著一碗紅糖水然磷,邊走邊用勺子攪動著,時不時用嘴吹一下刊驴,我停了下來姿搜,曉梅放快腳步走了過來...
    方海敏閱讀 736評論 11 28