zoukankan      html  css  js  c++  java
  • Laravel5.1控制器小结

    控制器一般存放在appHttpControllers目录下,所有Laravel控制器都应继承基础控制器类。

    基础控制器

    • 基础控制器例子:
    <?php
    
    namespace AppHttpControllers;
    
    use AppUser;
    use AppHttpControllersController;
    
    class UserController extends Controller
    {
        /**
         * 显示指定用户的个人数据。
         *
         * @param  int  $id
         * @return Response
         */
        public function showProfile($id)
        {
            return view('user.profile', ['user' => User::findOrFail($id)]);
        }
    }
    
    • 路由指定控制器行为:
    Route::get('user/{id}', 'UserController@showProfile');
    
    • 路由指定控制器行为:
    Route::get('user/{id}', 'UserController@showProfile');
    

    RESTful资源控制器:

    • 资源控制器让你可以轻松地创建与资源相关的 RESTful 控制器,注册资源化路由:
    Route::resource('photos', 'PhotosController');
    

    这一条路由声明会创建多个路由,用来处理各式各样和相片资源相关的的 RESTful 行为。

    • 由资源控制器处理的行为:
    • 附加资源控制器
      如果想在资源控制器中默认的资源路由之外加入其它额外路由,则应该在调用Route::resource之前 定义这些路由。否则,由resource方法定义的路由可能会不小心覆盖你附加的路由:
    Route::get('photos/popular', 'PhotosController@method');
    Route::resource('photos', 'PhotosController');
    

    附:

    RESTful资源控制器的更新和删除操作调用起来比较特殊,特在此贴点代码:
    在view中调用删除操作:

    <form action="{{ url('admin/article/'.$article->id) }}" method="POST" style="display: inline;">
    {{ method_field('DELETE') }}
    {{ csrf_field() }}
    <button type="submit" class="btn btn-danger">删除</button>
    </form>
    

    在对应的控制器中进行删除操作:

    public function destroy($id)
    {
        Comment::find($id)->delete();
        return redirect()->back()->withInput()->withErrors('评论删除成功!');
    }
    

    在view中调用更新操作:

    <form action="{{ url('admin/article/'.$article->id) }}" method="POST">
        {{ method_field('PATCH') }}
        {{ csrf_field() }}
        <input type="text" name="title" class="form-control" required="required" placeholder="请输入标题" value="{{ $article->title }}">
        <br>
        <textarea name="body" rows="10" class="form-control" required="required" placeholder="请输入内容">{{ $article->body }}</textarea>
        <br>
        <button class="btn btn-lg btn-info">提交修改</button>
    </form>
    

    在对应的控制器中进行更新操作:

    public function update(Request $request,$id)
    {
        //数据验证
        $this->validate($request, [
            'title' => 'required|max:255',
            'body' => 'required',
        ]);
    
        $article = Article::find($id);
        $article->title = $request->get('title');
        $article->body = $request->get('body');
    
        if ($article->save()) {
            return redirect('admin/article')->withErrors('更新成功!');
        } else {
            return redirect()->back()->withInput()->withErrors('更新失败!');
        }
    }
    

    附加的这些代码只供参考,没有实际意义

  • 相关阅读:
    生成日期列表的函数.sql
    Archlinux下启用Thinkpad功能键
    使用临时表进行编号重排的处理示例.sql
    行值动态变化的交叉报表处理示例.sql
    工作日处理函数(标准节假日).sql
    字符串在编号查询中的应用示例及常见问题.sql
    分段更新函数.sql
    TypeMembersToIL.cs
    排序规则在拼音处理中的应用.sql
    text与image字段转换处理示例.sql
  • 原文地址:https://www.cnblogs.com/songziqing/p/5806690.html
Copyright © 2011-2022 走看看