5

I'm learning Laravel for the first time, just started today. Fresh Laravel install via Composer on LAMPP - Ubuntu. After I run sudo /opt/lampp lampp start in my terminal, I open Chrome and nav to localhost/MYAPP/resources/views/welcome.blade.php. This is the view that is rendered. The "@" statements (that I assume are specific to Laravel's controllers) are rendered to the screen in the browser and I cannot figure out why this is happening.

Any/all insight is appreciated!

EDIT: As requested here is my welcome.blade.php file:

<!doctype html>
<html lang="{{ app()->getLocale() }}">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Laravel</title>

    <!-- Fonts -->
    <link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">

    <!-- Styles -->
    <style>
        html, body {
            background-color: #fff;
            color: #636b6f;
            font-family: 'Raleway', sans-serif;
            font-weight: 100;
            height: 100vh;
            margin: 0;
        }

        .full-height {
            height: 100vh;
        }

        .flex-center {
            align-items: center;
            display: flex;
            justify-content: center;
        }

        .position-ref {
            position: relative;
        }

        .top-right {
            position: absolute;
            right: 10px;
            top: 18px;
        }

        .content {
            text-align: center;
        }

        .title {
            font-size: 84px;
        }

        .links > a {
            color: #636b6f;
            padding: 0 25px;
            font-size: 12px;
            font-weight: 600;
            letter-spacing: .1rem;
            text-decoration: none;
            text-transform: uppercase;
        }

        .m-b-md {
            margin-bottom: 30px;
        }
    </style>
</head>
<body>
    <div class="flex-center position-ref full-height">
        @if (Route::has('login'))
            <div class="top-right links">
                @auth
                    <a href="{{ url('/home') }}">Home</a>
                @else
                    <a href="{{ route('login') }}">Login</a>
                    <a href="{{ route('register') }}">Register</a>
                @endauth
            </div>
        @endif

        <div class="content">
            <div class="title m-b-md">
                Laravel
            </div>

            <div class="links">
                <a href="https://laravel.com/docs">Documentation</a>
                <a href="https://laracasts.com">Laracasts</a>
                <a href="https://laravel-news.com">News</a>
                <a href="https://forge.laravel.com">Forge</a>
                <a href="https://github.com/laravel/laravel">GitHub</a>
            </div>
        </div>
    </div>
</body>

MDJ
  • 63
  • 1
  • 1
  • 5
  • 1
    can you please update your code? We cannot fix if you don't post your code. – Tai Le Feb 21 '18 at 23:54
  • This is a new install, I've not added, changed or removed a single line of code. if there is a file you'd like to check I'd be happy to post it. but i wouldnt have a clue which one is causing this issue. – MDJ Feb 22 '18 at 01:09
  • I think you should post `layouts/app.blade.php` and `home.blade.php` – Tai Le Feb 22 '18 at 01:32
  • To use `@auth`, laravel requires version 5.5. `@else` is not valid when use `@auth`. You can use `@guest ... @endguest` instead. – Tai Le Feb 22 '18 at 01:35
  • @Yachi웃 I am not seeing those files nor the 'layout' directory anywhere in my project tree. Is it possible I either don't have Blade installed or it doesn't have execute permissions? – MDJ Feb 22 '18 at 01:52
  • sorry, can you post your code from welcome.blade.php file? – Tai Le Feb 22 '18 at 02:07
  • @Yachi웃 Yes sir! – MDJ Feb 22 '18 at 04:20
  • I think you didn't set up virtual host, please try it in this. http://laravel-recipes.com/recipes/25/creating-an-apache-virtualhost – Tai Le Feb 22 '18 at 04:31

2 Answers2

3

The @ in laravel blade view is injection of some php commends and shortcuts. For example:

@if(condition)
    some data
@else
    some data
@endif

Is the same as:

<?php if(condition){ ?>
    some data
<?php } else { ?>
    some data
<?php } ?>

You will find more here: https://laravel.com/docs/5.6/blade

When it comes to Laravel it is a basic so read it carefully.

Adam Kozlowski
  • 5,606
  • 2
  • 32
  • 51
  • Thanks for the info. Upon reading that I'm still clueless as to why those statements can be seen on the page. According to the documentation they should'nt be rendered (visually) at all, right? – MDJ Feb 21 '18 at 22:50
  • it is a blade engine which want to make your view syntax more readable – Adam Kozlowski Feb 22 '18 at 08:39
0

After a week now of double checking my PATH and versions for everything, I've figured out that I simply needed to navigate to the directory where my application is stored and run the command php artisan serve.

Major props to user Yachi 웃 for his attentive help.

MDJ
  • 63
  • 1
  • 1
  • 5