rsarvarov

Member Since 8 Months Ago

Experience Points
1,290
Total
Experience

3,710 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.

  • Community Pillar

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

Level 1
1,290 XP
Dec
16
1 month ago
Activity icon

Started a new Conversation Same Auth Driver On Frontend (api && Vue Js) And Backend (voyager)

Hey guys. I have website that have frontend based on API and server side admin panel (voyager). Currently it uses different auth drivers: jwt (https://github.com/tymondesigns/jwt-auth) for api, session for web. I want to automatically log in to the admin panel when logging in via jwt. Is it possible?

p.s. if i set jwt driver for "web" it throws "Auth driver [jwt] for guard [web] is not defined.". p.s. 2, I can't access to session from other drivers. For example I can't create middleware with

$user = auth()->guard('api')->user()

and attach it to web. It will return null and I don't know why.

Dec
09
1 month ago
Activity icon

Started a new Conversation Don't Load Specific Columns From DB

Hello.

I store attachments directly in database (column with raw binary code).

So when I do $attachment = Attachment::take(20)->get() it loads all data in variables (with binary code included).

File may have big size and it will put hundreds of megabytes in RAM.

Is there any way to exclude some columns from DB and load it by lazy way, like relations?

For example:

$attachment = Attachment::find(123);
// $attachment->content === null
$attachment->content; // <<BINARY CODE>> (loaded from database)
Nov
06
2 months ago
Activity icon

Started a new Conversation Elegant Way To Wrap Model Into Collection?

I want to work with collections even if data is single model:

So if I do collect($collectionOfModels) its do nothing = GOOD.

If I do collect($singleModel) its wraps all model's properties (instead of model) like this:

array:2 [
  "id" => 1
  "name" => "Alex"
]

But I want this:

array:1 [
  array:2 ["id" => 1, "name" => "Alex"],
]

So every time I do that trick:

$collectionOrSingleModel = getData();

if ($collectionOrSingleModel instanceof Model) {
    $collectionOrSingleModel  = collect([collectionOrSingleModel ]);
}

foreach ($collectionOrSingleModel as $singleModel) {
    // ...
}


It works fine but I don't feel good. Is there any better way to do that?

Oct
20
3 months 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
3 months 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
3 months 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
3 months 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
4 months 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
4 months 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
4 months 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
5 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
5 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
5 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
5 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
5 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();
}