rsarvarov

rsarvarov

Member Since 5 Months Ago

Experience Points
1,130
Total
Experience

3,870 experience to go until the next level!

In case you were wondering, you earn Laracasts experience when you:

  • Complete a lesson — 100pts
  • Create a forum thread — 50pts
  • Reply to a thread — 10pts
  • Leave a reply that is liked — 50pts
  • Receive a "Best Reply" award — 500pts
Lessons Completed
0
Lessons
Completed
Best Reply Awards
0
Best Reply
Awards
  • start your engines Created with Sketch.

    Start Your Engines

    Earned once you have completed your first Laracasts lesson.

  • first-thousand Created with Sketch.

    First Thousand

    Earned once you have earned your first 1000 experience points.

  • 1-year Created with Sketch.

    One Year Member

    Earned when you have been with Laracasts for 1 year.

  • 2-years Created with Sketch.

    Two Year Member

    Earned when you have been with Laracasts for 2 years.

  • 3-years Created with Sketch.

    Three Year Member

    Earned when you have been with Laracasts for 3 years.

  • 4-years Created with Sketch.

    Four Year Member

    Earned when you have been with Laracasts for 4 years.

  • 5-years Created with Sketch.

    Five Year Member

    Earned when you have been with Laracasts for 5 years.

  • school-in-session Created with Sketch.

    School In Session

    Earned when at least one Laracasts series has been fully completed.

  • welcome-newcomer Created with Sketch.

    Welcome To The Community

    Earned after your first post on the Laracasts forum.

  • full-time-student Created with Sketch.

    Full Time Learner

    Earned once 100 Laracasts lessons have been completed.

  • pay-it-forward Created with Sketch.

    Pay It Forward

    Earned once you receive your first "Best Reply" award on the Laracasts forum.

  • subscriber Created with Sketch.

    Subscriber

    Earned if you are a paying Laracasts subscriber.

  • lifer Created with Sketch.

    Lifer

    Earned if you have a lifetime subscription to Laracasts.

  • evangelist Created with Sketch.

    Laracasts Evangelist

    Earned if you share a link to Laracasts on social media. Please email [email protected] with your username and post URL to be awarded this badge.

  • chatty-cathy Created with Sketch.

    Chatty Cathy

    Earned once you have achieved 500 forum replies.

  • lara-veteran Created with Sketch.

    Laracasts Veteran

    Earned once your experience points passes 100,000.

  • 10k-strong Created with Sketch.

    Ten Thousand Strong

    Earned once your experience points hits 10,000.

  • lara-master Created with Sketch.

    Laracasts Master

    Earned once 1000 Laracasts lessons have been completed.

  • laracasts-tutor Created with Sketch.

    Laracasts Tutor

    Earned once your "Best Reply" award count is 100 or more.

  • laracasts-sensei Created with Sketch.

    Laracasts Sensei

    Earned once your experience points passes 1 million.

  • top-50 Created with Sketch.

    Top 50

    Earned once your experience points ranks in the top 50 of all Laracasts users.

Level 1
1,130 XP
Oct
20
1 week ago
Activity icon

Replied to Get "dirty" Attributes Of Model (even If No Changes)

I probably found the solution (in model code):

    protected $touchedProperties = [];

    /**
     * @param $key
     * @param $value
     */
    public function setAttribute($key, $value)
    {
        $this->touchedProperties[$key] = $value;

        parent::setAttribute($key, $value);
    }
Activity icon

Started a new Conversation Get "dirty" Attributes Of Model (even If No Changes)

I know about getDirty() method, that gives me properties that been changed (before save()). But what if I want to know properties that haven't changed at all (but It was setted)?

For example:

$user = User::where('name', 'Alex')->first(); // ID: 123, NAME: 'Alex', CITY: 'New York' etc...
$user->name = $user->name; 

So I want detect that there was try to change 'name' column. Is there any easy way to do that?

Oct
12
2 weeks ago
Activity icon

Replied to Sort Collection Hierarchically

Probably yes.

Activity icon

Started a new Conversation Sort Collection Hierarchically

I have collection with these properties:

id | name | parent_id

1  | Category2 | null
2  | Element1   | 2
3  | Element3   | 1
4  | Category1 | null
5  | Element4   | 2
6  | Element1   | 1

I want to sort parent categories then its childs.

So in case above I want to receive that result:

id | name | parent_id

1  | Category1 | null
3  | Element3   | 1
6  | Element1   | 1
4  | Category2 | null
5  | Element4   | 2
2  | Element1   | 2

Is there any way to do that by using sort or sortBy methods?

Oct
02
4 weeks ago
Activity icon

Started a new Conversation Get Model Changes Via GetDirty(), But `name`, Not `id`

I log all my model updatings in database by using this in updating event of my models:

$originalData = $this->changeable->getOriginal();
$dirtyData = $this->changeable->getDirty();

// save changes of properties in some table...

So, its works fine, but it gives my only ID of changing properties.

For example status_id was changed, and it will put this in db:

key            | old_value  | new value
-------------------------------------------------
status_id  | 3                 |  4

But I want to store name property of status via relation:

key            | old_value                     | new value
------------------------------------------------------------------
status_id  | In progress                 |  Completed

Is there any way to do that?

Sep
29
1 month ago
Activity icon

Started a new Conversation Convert Ids To Models In Request Class?

So I have custom request class that handle my html form.

In request class I have validation rule like: ['users' => 'sometimes|exists:users,id'].

And in my controller I have:

$users = User::find($customRequest->get('users'));

So in this case I think I have double query for validating (but it's not critical I guess) and user search and I want to get rid of finding users in my controller.

So in my controller I want like this:

function test(CustomRequest $request) 
{
    $users = $request->get('users'); // array or collection of models (not ids!!)
}
Sep
10
1 month ago
Activity icon

Started a new Conversation Difference Between Sometimes And Nullable Validation Rule?

Is there any difference?

Activity icon

Started a new Conversation Validate Existing File

I have the file that exists in my storage folder.

Is it possible to validate his parameters via laravel validator?

I mean not while uploading it in request.

Sep
09
1 month ago
Activity icon

Started a new Conversation Validate Via Custom Rule From String Rules

For some reason I store validation in database in string column, for example:

id  |  field | rules
-------------------
1  |  first_name | required|bail|max:50
2  |  last_name | required|bail|max:70

So when I validate through Laravel validator I load these rules from DB.

But now I need to validate some filelds with custom Rules.

In code I can do that: 'field' => ['required', 'bail', new CustomRule].

But I store my rules in DB in varchar column so I cant create Rule instance.

Is it possible to validate through custom Rule class from string rules?

Something like this: 'field' => 'required|bail|max:70|class:App\Rules\CustomRule'

Sep
06
1 month ago
Activity icon

Replied to Route Model Binding - Multiple Keys Of Model

It will need to search post manually in controller method. Is is possible to "inject" finded model like public function show(Post $post)?

Activity icon

Started a new Conversation Route Model Binding - Multiple Keys Of Model

I have this route:

Route::get('/posts/{post:slug}-{post:id}', '[email protected]');

But it throws an exception Route pattern "/posts/{post}-{post}" cannot reference variable name "post" more than once..

Is is there an any way to make this work? I mean to make Laravel magic to search the model by two keys:

public function show(Request $request, Post $post) 
{
    // $post = Post::where(['id' => ..., 'slug' => ...])->firstOrFail()
}
Aug
17
2 months ago
Activity icon

Started a new Conversation Create Model With Relations Without Saving And Attaching Each Relation

For example I have model Car that has many Wheels.

Is it possible to save that model like this way or similiar?:

$car = new Car();

$car->wheels = collect([
    new Wheel(['name'] => 'wheel 1'), 
    new Wheel(['name'] => 'wheel 2'), 
    new Wheel(['name'] => 'wheel 3'), 
    new Wheel(['name'] => 'wheel 4'), 
]);

SomeFilter::filter($car);

$car->save();

I need that because I want to create model with relations (which has not yet been saved in the database) and pass this object through the filter (other class/method) and save in database the "filtered" result.

Aug
15
2 months ago
Activity icon

Replied to App(<class>). How To Automatically Set Called Class Name In Property?

$entityName may have different classes, not only class A.

Activity icon

Started a new Conversation App(<class>). How To Automatically Set Called Class Name In Property?

I have class A and class B.

I want the property with the class "A" name to be automatically set when creating an instance of class "B".

For example:

<?php 

namespace App;

class B {
    public $entityName;

    public function __construct($entityName)
    {
         $this->entityName = $entityName;
    }
}
<?php 

namespace App;

class A {
    public function test() 
    {
        $b = app(\App\B::class);
        echo $b->entityName; // SHOULD RETURN STRING "\App\A"
    }
}

Is it possible to make that without doing it manually app(\App\B::class, ['entityName' => static::class])?

Aug
14
2 months ago
Activity icon

Replied to Get Relation With Minimum Value

TY. why u use $journey->current_point instead of $journey->currentPoint

Activity icon

Started a new Conversation Get Relation With Minimum Value

For examle I have 2 models:

  • Journey (has points)
  • Point (belongs to journey)

Journey model has 2 methods:

public function points()
{
    return $this->hasMany(Point::class);
}

public function currentPoint()
{
    return $this->hasOne(Point::class);
}

I want to make currentPoint return single point that have status = 0 (not visited, for example) and lowest position (of all points of this journey). So if Journey can have multiple points, only one currentPoint can be.

I want relation, not just query builder object.

Is it possible to do that?

Aug
11
2 months ago
Activity icon

Started a new Conversation Same Method On Multiple Controllers

I have two models:

  1. Man implements Walkable
  2. Woman implements Walkable

Also I have two routes:

  1. /man/{man}
  2. /woman/{woman}

In both controllers I have same method: the difference only in arguments:

  1. testMethod(Man $man)
  2. testMethod(Woman $woman)

All I want is to create a trait with method like this and use it in both controllers: testMethod(Walkable $walkable)

But laravel does not inject model. Is it possible to do that I want?

Jul
29
3 months ago
Activity icon

Started a new Conversation How To Make Polymorphic Relationship In Models?

I have 3 models Document, Status, ApprovalAttempt.

documents
    id - integer
    name - string

statuses
    id - integer
    approval_attempt_id - integer (foreign key)

approval_attempts
    id - integer
    approvable_type - string (polymorphic model name)
    approvable_id - integer (polymorphic model id)

How can I access from Document model to its statuses?

I thought I can do like this, but I cant:

public function statuses()
{
    return $this->approvalAttempts()->statuses();
}
Jun
24
4 months ago
Activity icon

Started a new Conversation Good Practice For Naming Foreign Columns?

I just read an awesome article Laravel best practices

But I have question about naming foreign columns in database.

For example, I have models Post and User (posts and users tables).

Each post has an author - foreign key to users table.

Is it good to name that column author_id, or keep Laravel naming rules and name it just user_id.

Yes, the first way will force me to change relationship realization (hasOne) inside Post model, but I think its more readable.

What do you think?

Jun
18
4 months ago
Activity icon

Replied to What's The Best Folder Structure For Interfaces/Traits Etc.

Thank you.

  1. Is it good to copy base class folder path /app/Contracts/Http/Controllers/ModelControllerInterface.php or its fine to store it just like /app/Contracts/ModelControllerInterface.php
  2. I once read that it is good practice not to add an Interface or Trait to the interface/trait name in Laravel. What to you think?
Activity icon

Started a new Conversation What's The Best Folder Structure For Interfaces/Traits Etc.

For example I have /app/Http/Controllers/UserController.php and interface for it with name ModelControllerInterface.

What is the best way to store this interface file?

  1. Create new folder in app: /app/Interfaces/Http/Controllers/ModelControllerInterface.php
  2. Create a subfolder in Controllers folder /app/Http/Controllers/Interfaces/ModelControllerInterface.php
  3. Store this file in the same folder /app/Http/Controllers/ModelControllerInterface.php
May
31
5 months ago
Activity icon

Started a new Conversation Collection's When() Method

Should callback in when() method return something? The documentation says YES.

But I dont see any difference between returning something, collection object or nothing.

May
17
5 months ago
Activity icon

Started a new Conversation Best Way To Store Auth Gates In Different Classes?

As we know, laravel's gates are stored in "boot" method of AuthServiceProvider (in contrast to the policies, which are divided into different classes).

But I can guess that my application will contain a lot of gates in the future.

Because of that, the "boot" method can stretch over hundreds of rows.

Is it a good practice to store gates not in AuthServiceProvider. What is the best way to organize it correctly?

May
16
5 months ago
Activity icon

Replied to View Website As Another User

I think it is that I need. Thank you!

Activity icon

Started a new Conversation View Website As Another User

In laravel, there is a method that will login under some user:

For example:

auth()->login(User::first());

I want to create a button in admin panel (like "see website as user"). When you click on it it should log under some user. But I want to keep admin session, access to the admin panel and button like "back to admin user".

What is the best way to do that?

Activity icon

Started a new Conversation What Difference Between Interfaces And Contracts?

After I red official documentation here I still don't see a difference between PHP interfaces and Laravel contracts.

Im I right what contracts are just interfaces for classes, what are in ServiceContainer? Or should I always call my interfaces contracts?

May
14
5 months ago
Activity icon

Replied to Best Practice For Custom Helpers?

Thank you. But I have many helper classes, which are work with data not from model. The code I provided just an example. The question about - should I use ServiceContainer for these classes or no.

Activity icon

Started a new Conversation Best Practice For Custom Helpers?

So I have custom helper for some format operations, calculating etc...

Should it be static like this (not real class, just an example):

namespace \App\Helpers\UserHelper;


class UserHelper {
    public static function splitFullName(string $fullName)
    {
        [$name, $surname] = explode(' ', $fullName);

        return compact('name', 'surname'); 
    }
}

So in project I can do that (for example in controller):

public function show(User $user)
{
    $userSplittedFullName = UserHelper::splitFullName($user->name);
}

Or better will be that way?

public function show(User $user, UserHelper $userHelper)
{
    $userSplittedFullName = $userHelper::splitFullName($user->name);
}

Or might be make helper's function non-static, to do that:

public function show(User $user, UserHelper $userHelper)
{
    $userSplittedFullName = $userHelper->splitFullName($user->name);
}

What do you think?