Laravel 系列入门教程(三)【最适合中国人的 Laravel 教程】

论坛 期权论坛     
选择匿名的用户   2021-5-31 09:53   333   0
<div class="blogpost-body" id="cnblogs_post_body">
<p>在本篇文章中,我们将尝试构建一个带后台的简单博客系统。我们将会使用到 路由、MVC、Eloquent ORM 和 blade 视图系统。</p>
<h2>简单博客系统规划</h2>
<p>我们在教程一中已经新建了一个继承自 Eloquent Model 类的 Article 类,使用 migration 建立了数据表并使用 seeder 填入了测试数据。我们的博客系统暂时将只管理这一种资源:后台需要使用账号密码登录,进入后台之后,可以新增、修改、删除文章;前台显示文章列表,并在点击标题之后显示出文章全文。</p>
<p>下面我们正式开始。</p>
<h2>搭建前台</h2>
<p>前台的搭建是最简单的,我先带大家找找感觉。</p>
<h3>修改路由</h3>
<p>删掉</p>
<div class="highlight highlight-text-html-php">
  <div class="cnblogs_code">
   <pre class="blockcode">Route::get(&#39;/&#39;, <span style="color:#0000ff;">function</span><span style="color:#000000;"> () {
    </span><span style="color:#0000ff;">return</span> <span style="color:#008080;">date</span>(&#34;Y-m-d H:i:s&#34;<span style="color:#000000;">);
});</span></pre>
  </div>
</div>
<p>将<code>Route::get(&#39;/home&#39;, &#39;HomeController&#64;index&#39;)-&gt;name(&#39;home&#39;);</code> 改为 <code>Route::get(&#39;/&#39;, &#39;HomeController&#64;index&#39;)-&gt;name(&#39;home&#39;);</code>,现在我们系统的首页就落到了 <code>App\Http\Controllers\HomeController</code> 类的 <code>index</code> 方法上了。</p>
<h3>查看 HomeController 的 index 函数</h3>
<p>将 <code>learnlaravel5/app/Http/Controllers/HomeController.php</code> 的 index 函数我们之前加的 Exception 那行代码删除,就只剩一行代码了:<code>return view(&#39;home&#39;);</code>,这个很好理解,返回名叫 home 的视图给用户。这个视图文件在哪里呢?在 <code>learnlaravel5/resources/views/home.blade.php</code>,blade 是 Laravel 视图引擎的名字,会对视图文件进行加工。</p>
<h3>blade 浅析</h3>
<p>blade 引擎会对视图文件进行预处理,帮我们简化一些重复性很高的 echo、foreach 等 PHP 代码。blade 还提供了一个灵活强大的视图组织系统。打开 <code>home.blade.php</code>:</p>
<div class="highlight highlight-text-html-php">
  <div class="cnblogs_code">
   <pre class="blockcode">&#64;<span style="color:#0000ff;">extends</span>(&#39;layouts.app&#39;<span style="color:#000000;">)

&#64;section(</span>&#39;content&#39;<span style="color:#000000;">)
</span>&lt;div <span style="color:#0000ff;">class</span>&#61;&#34;container&#34;&gt;
    &lt;div <span style="color:#0000ff;">class</span>&#61;&#34;row&#34;&gt;
        &lt;div <span style="color:#0000ff;">class</span>&#61;&#34;col-md-8 col-md-offset-2&#34;&gt;
            &lt;div <span style="color:#0000ff;">class</span>&#61;&#34;panel panel-default&#34;&gt;
                &lt;div <span style="color:#0000ff;">class</span>&#61;&#34;panel-heading&#34;&gt;Dashboard&lt;/div&gt;

                &lt;div <span style="color:#0000ff;">class</span>&#61;&#34;panel-body&#34;&gt;<span style="color:#000000;">
                    &#64;</span><span style="color:#0000ff;">if</span> (session(&#39;status&#39;<span style="color:#000000;">))
                        </span>&lt;div <span style="color:#0000ff;">class</span>&#61;&#34;alert alert-success&#34;&gt;<span style="color:#000000;">
                            {<!-- -->{ session(</span>&#39;status&#39;<span style="color:#000000;">) }}
                        </span>&lt;/div&gt;<span style="color:#000000;">
                    &#64;</span><span style="color:#0000ff;">endif</span><span style="color:#000000;">

                    You are logged in</span>!
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;<span style="color:#000000;">
&#64;endsection</span></pre>
  </div>
</div>
<h4><a class="user-mention" href="https://github.com/extends">&#64;extends</a>(&#39;layouts.app&#39;)</h4>
<p>这表示此视图的基视图是 <code>learnlaravel5/resources/views/layouts/app.blade.php</code> 。这个函数还隐含了一个小知识:在使用名称查找视图的时候,可以使用 . 来代替 / 或 \。</p>
<h4><a class="user-mention" href="https://github.com/Section">&#64;Section</a>(&#39;content&#39;) ... &#64;endsection</h4>
<p>这两个标识符之间的代码,会被放到基视图的 <code>&#64;yield(&#39;content&#39;)</code> 中进行输出。</p>
<h3>访问首页</h3>
<p>首先删除 <code>learnlaravel5/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php</code> 中 <code>dispatch</code> 函数里我们加的的 var_dump 代码,否则会出现奇怪的页面。<br>访问 <a href="http://fuck.io:1024/">http://fuck.io:1024</a> ,不出意外的话,你会看到这个页面:</p>
<p><a href="https://camo.githubusercontent.com/be32acb9dae82b79ab062b51f210ade43d5409d8/687474703a2f2f716e2e6c7677656e68616e2e636f6d2f323031372d31312d31302d31353130323334383632313836332e6a7067"><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-f4395574683d0639a1d86a6fb472852a"></a></p>
<p>为什么需要登录呢&#xff1f
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP