In Magento 2, how can I get a custom model that is created in a custom module (not a Magento 2 native module)? I know I can use object manager for getting and creating, and I know how to do this for Magento models, for example, to get the Mage::getModel('sales/order') I can use: $om->get('Magento\Sales\Model\Order'). How can I get a custom model "custom model" created in module "module-name"?

1 Answer 1


You can get the model by injecting it into the constructor.

like :

if your model is


You should use inject in the constructor like

public function __construct(
    <vendor_name>\<module_name>\Model\CustomModelFactory $customModelFactory
) {
    $this->customModelFactory = $customModelFactory;

now you can get customModel object by using $this->customModelFactory->create().

But the more appropriate way to access a model is by using a repository.

So follow the repository pattern Magento 2 follows and then inject the repository in the constructor.

Now using the repository you can get a model.

For more info on the repository, pattern refer: http://alanstorm.com/magento_2_understanding_object_repositories/

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.