1. Go to this page and download the library: Download jamesaspence/core-model library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
jamesaspence / core-model example snippets
//First we instantiate the repository
$repository = new ModelRepository();
//We pass in the reference to the model class
//so we can query it
$repository->setModel(User::class);
//Now we use the repository to find a model
$user = $repository->find(1);
//Let's save some new attributes
$repository->fill($user, [
'name' => 'Test Testerton'
]);
//Finally, let's save!!
$repository->save($model);
//Let's query based on email AND name
$user = $repository
->query()
->where('name', '=', 'Test Testerton')
->where('email', '=', '[email protected]')
->first();
$model = User::active()->get();
$repository = new ModelRepository(User::class);
$model = $repository->active()
->get();
//This
$model = new User();
$repository->doThing($model, $stuff, $things);
//Is equivalent to this
$model->doThing($stuff, $things);
$user = $repository
->with(['tokens', 'profile'])
->find(1);
//Let's also load a relation with an existing model.
$repository->load($existingUser, 'comments');
//You can also pass in the class definition into the constructor.
$profileRepository = new ModelRepository(Profile::class);
$profile = $profileRepository->newModel(['stuff' => 'things']);
//$repository is still set for User::class here
$user = $repository->find(1);
//Assuming a BelongsTo relation named profile()
//on User, let's associate it!
$repository
->getRelationRepository()
->associateRelation($user, 'profile', $profile);
//Dont forget to save!
$repository->save($user);
//Assuming comment IDs...
$commentIds = [1, 2, 3];
//Let's sync them to a comments relation!
$repository
->getRelationRepository()
->sync($user, 'comments', $commentIds);
// Rather than doing this... bad!!
public function badControllerMethod()
{
$user = User::find(1);
}
//We can do this! Good!
public function goodControllerMethod(ModelRepository $repository)
{
$repository->setModel(User::class);
$user = $repository->find(1);
}
$factory = new ModelFactory();
//We need to pass in a ModelRepository
//to be able to save
$factory->setRepository(new ModelRepository(User::class));
$user = $factory->make([
'name' => 'Test Testerton'
]);
class UserRepository extends ModelRepository
{
/**
* {@inheritdoc}
*/
public function getDefaultModel()
{
//We just need to pass in our default model
return User::class;
}
}
public function controllerMethod(UserRepository $repository)
{
$user = $repository->find(1);
}
SELECT * FROM `users` WHERE `name` = ? AND `id` = ?
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.