Laravel 5 主页控制器

Posted

技术标签:

【中文标题】Laravel 5 主页控制器【英文标题】:Laravel 5 home page controller 【发布时间】:2015-07-13 07:27:53 【问题描述】:

登录后会重定向到http://localhost/laravel/public/home

因此查看文件的位置将是 \resources\views\home.blade.php

现在在这个主页上我可以获取登录用户 ID

<?php
echo $id = Auth::id();
?>

现在我已经使用

创建了控制器
D:\wamp\www\laravel>php artisan make:controller HomeController

控制器创建成功。

现在在主页上,我必须根据登录用户显示一些数据。

如果我在家庭控制器中回显退出,但它不起作用。那么我必须在哪个控制器文件中编写代码?

HomeController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class HomeController extends Controller

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    

    

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create()
    
        //
    

    /**
     * Store a newly created resource in storage.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    
        //
    

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return Response
     */
    public function show($id)
    
        //
    

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return Response
     */
    public function edit($id)
    
        //
    

    /**
     * Update the specified resource in storage.
     *
     * @param  Request  $request
     * @param  int  $id
     * @return Response
     */
    public function update(Request $request, $id)
    
        //
    

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return Response
     */
    public function destroy($id)
    
        //
    

【问题讨论】:

展示你的家庭控制器 是我自己还是这个问题真的模棱两可?我假设您的路由正常工作,并且您的中间件设置,您的视图已返回,但您只想从 Auth::user() 检索数据? 【参考方案1】:

您可以通过这种方式访问​​用户数据

  Auth::user()->field_name 

例如:

 Auth::user()->id 
 Auth::user()->name 
 Auth::user()->email 

【讨论】:

我已经有了。谢谢。我需要使用控制器。因为根据用户 ID,我必须从另一个表中获取数据 Eloquent 为您提供了很好的方法,无需使用控制器。你可以这样做: $user->your_table 如果你之前在他们的模型中定义了一个关系。我强烈推荐你。查看文档:laravel.com/docs/4.2/eloquent#relationships【参考方案2】:

首先你可能需要在 routes.php 中创建一个路由

Route::get('laravel/public/home', [
'as' => 'home', 'uses' => 'HomeController@index'
]);

然后在 HomeController 的 index() 函数中添加代码。

【讨论】:

【参考方案3】:

在您的HomeController.php 中添加以下行以使用它。

use Auth;

所以,您的HomeController.php 将如下所示

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;

现在,您可以从控制器执行return Auth::user()-&gt;id 以返回登录用户的 ID。

它看起来像这样

public function index()

return Auth::user()->id;

注意:

只有在用户通过身份验证后,您才能看到Auth::user()-&gt;id

【讨论】:

以上是关于Laravel 5 主页控制器的主要内容,如果未能解决你的问题,请参考以下文章

laravel 5.2 身份验证 - 缺少链接

Laravel 相同的路由,不同的控制器

在 Laravel 中无效后防止重定向到主页

在Laravel的简单页面上传递关系中的计数

Laravel 4无法从命名空间控制器中找到BaseController

Laravel 5.1 移除控制器