0

I was wondering if it is possible to use classes and define functions in a controller file , then call these methods inside views.

Right now :

I'm just writing normal php functions then inluding them inside the views like :

PHP FILE

function viewProfile() {

    function getUsername() {

    $username = Auth::user()->username;

    return $username;
    }

    function getName() {

    $name = Auth::user()->name;

    return $name;
    }

    function getEmail() {

    $email = Auth::user()->email;

    return $email;
    }

}

Views File :

<?php

include(app_path().'/scripts/profile.php'); 

viewProfile();

?>

<td><?php echo getUsername() ?></td>

I want to write it in classes instead like :

public class profile {


public static $username = Auth::user()->username;
public static $name = Auth::user()->]name;
public static $email = Auth::user()->email;

    function getUsername() {

    return $username;
    }

    function getName() {

    return $name;
    }


    function getEmail() {

    return $email;
    }


}

I tried creating a controller file and using the above code but doesn;t seem to work - i guess controllers can be used for routing functions only.

Is there any way to use the class above and link the view , so i can use its methods ?

2
  • Are you really nesting functions inside your viewProfile() function?!? Commented Mar 21, 2014 at 16:20
  • Your profile class looks just like a model, and all the functionality you do, you can do just from the view like {{ Auth::user()->username }} so i think you need to start thinking more in framework style. Commented Mar 21, 2014 at 16:24

1 Answer 1

1

You just use blade to get what you want...

in your view you do...

<div>username: {{ Auth::user()->username }}</div>
<div>name: {{ Auth::user()->name }}</div>
<div>email: {{ Auth::user()->email }}</div>

And that is mainly it, no need for classes or anything else.

TIP To activate blade you just add the .blade.php extenstion

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.